我正在尝试在我的应用程序中使用MQTT进行实时通知。 作为客户端库我正在使用Eclipse Paho。 这是他们的示例android应用程序: https://eclipse.org/paho/clients/android/
在Android 4
它工作正常 - 如果我已连接并且我的设备进入睡眠模式,mqttClient正在发送定期ping并保持连接活动。
但是,在我的Android 5.1.1
连接在设备进入睡眠模式的短暂时间内被撕裂。
奇怪的是我仍然有wifi连接,wifi没有断开(我为此实现了一个BroadcastReceiver),但由于某些原因,MQTT连接没有被保留。
我已经通过Eclipse测试了示例应用程序,使用唤醒锁和定期ping实现了我自己的服务 - 同样的故事。
有谁知道为什么会这样?对此有何解决方法?
供参考:https://bugs.eclipse.org/bugs/show_bug.cgi?id=482442
更新:发现如果我将keepAlive超时设置为10秒,则会保持连接。如果是20秒,则连接断开。使用http://socket.io时会发生相同的情况(10秒ping - 持续连接,20秒ping - 连接断开)。 有谁知道为什么?