小编Pra*_*dia的帖子

Android - 一旦网络连接发生变化(禁用并再次启用移动数据),Paho Mqtt 客户端就不会收到消息

我正在使用 Mosquitto Mqtt 和 paho API 在 android 设备上接收推送消息。但是一旦网络连接发生变化,它就会停止接收消息。以下是使用简单测试用例重现问题的步骤:

1)创建一个简单的活动。

2) On Activity StartUp 通过 paho API 连接到 mosquitto 测试服务器 (test.mosquitto.org:1883)。

3)订阅一些主题。

4)向主题发布一些消息。

结果: Mqtt 客户端收到发布到该主题的所有消息。现在

5)禁用手机上的互联网连接(移动数据)

6) 向主题发布一些消息。

7)重新连接互联网。

结果:客户端在禁用 Internet 连接后未收到任何发布的消息。

由于KeepAliveInterval已保持为高值(30 分钟),因此它应在重新连接到 Internet 后接收所有消息。

相同的用例(相同的代码)适用于简单的 java 项目(非安卓),我在我的笔记本电脑上禁用互联网来运行用例。

知道为什么它不能在 android 设备上工作吗???我错过了什么吗?

笔记:

1) 使用 mqtt-client-0.4.1

2) Android 目标 API 级别 11

3) 测试期间不让设备进入睡眠模式。

4) 在 connectionLost 回调中没有得到任何调用,并且 mqtt 回调的所有 4 个线程都在整个测试用例中运行,即连接 mosquitto 服务器完好无损。

java android mqtt mosquitto paho

5
推荐指数
1
解决办法
7361
查看次数

标签 统计

android ×1

java ×1

mosquitto ×1

mqtt ×1

paho ×1