android - IBM Bluemix 在一段时间后断开 MqttAndroidClient

标签 android ibm-cloud mqtt iot

我正在将 CC2650 sensortag 和 Bluemix(使用 IOT 启动器样板)作为云解决方案。 cc2650 android 应用程序使用 MqttAndroidClient 连接到 bluemix 提供的 MQTT 服务器。我在一段时间后(大约 7 分钟)遇到的问题超时了。

在android studio 控制台上可以看到以下异常 d:2f7tpk:ti-sensortag2:B0B448C07886:由于没有 Activity 而超时,keepAlive=240,000 lastOutboundActivity=1,463,309,545,312 lastInboundActivity=1,463,309,275,609 time=1,463,309,785,352 lastPing=1,46 3,309,545,312

请注意,我每隔 10 秒就会将数据从我的 Android 客户端应用程序发布到服务器。所以不确定为什么它说没有 Activity 。 Keepalive 间隔设置为 120 秒。

我确认了。 IBM Bluemix 在大约 7 分钟后断开客户端连接。在此期间,客户端以 10 秒的间隔连续发送数据,这在 Bluemix 设备页面上也可见。

知道为什么 Bluemix 在 6-7 分钟后断开连接(它不是固定的,但在 5 分之 6 的情况下,它在 7 分钟内断开连接,一次是在 6 分钟左右)。

新观察: 另一个观察结果是,一旦断开连接,我需要重试 10-12 次才能重新连接到 Bluemix 服务器。从 Mqttv3 客户端我得到异常“无法连接到服务器”。但在此期间,我能够通过 cmdline ping 实用程序 ping 到服务器。

最佳答案

这是因为手机 CPU 进入休眠模式。 http://dalelane.co.uk/blog/?p=1599详细解释了在 Android MQTT 客户端中应注意的所有事项。

关于android - IBM Bluemix 在一段时间后断开 MqttAndroidClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237614/

相关文章:

android - Kindle Fire、Fire 手机和亚马逊电视模拟器

android - 从 SD 卡中删除音频

node.js - 如何在 IBM Cloud Nodejs 运行时安装字体? (云代工厂)

python - MQTT 是如何工作的?如果接收方文件在发送方文件之后启动,则无法获取数据

javascript - MQTT PUBACK 网络套接字

java - 如何在android中解析列表?

android - 如何修复 Android 资源链接失败的 dialogCornerRadius not found

cloud - Cloud Foundry Droplet 和warden 容器有什么区别?

node.js - 如何检查 Openwhisk (IBM Cloud Functions) 是否已被调用?

java - Aws 物联网消息传递