您的当前位置:首页正文

mqtt在connectionLost和connectComplete不断切换

来源:爱站旅游
导读mqtt在connectionLost和connectComplete不断切换

mqtt在connectionLost和connectComplete不断切换

是之前连接了mqtt,虽然是执行disconnect了,但再次主动连接,就会出现 在connectionLost和connectComplete之间不断切换的现象 。

异常出现:
若在connectionLost()方法中直接循环调用MqttConnection类中connect()方法,

去实现重连机制的话,会出现在第一次重连成功后,一直断开连接再重连再断开连接再重连的死循环中。

异常定位:
原因在connect()方法中的这句:

这样就会出现重连时创建的MqttClient,使程序中初始化时创建的MqttClient断开连接,断开连接后就会回滚到connectionLost方法中,

然后此方法中又会继续重连,就出现上述的断开连接再重连再断开连接再重连的死循环。

原因是clientId未变更,而导致冲突,建议把clientId设置成带System.currentTimeMillis()的内容,每次连接重置clienId,问题解决。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top