连接被异常断开
问题1:连接被异常断开
原因:
消息队列MQTT的服务端在客户端发送Publish和Subscribe报文的时候进行权限验证,如果权限验证失败则会断开连接。
不同的客户端使用相同的 Client ID 连接消息队列 MQTT 服务,会被强制断开。
建议:
客户端确保自己的Client ID全局唯一,不要重复连接,同时做好断线重连的逻辑。
之前订阅过的Topic消息还在继续推送
原因:
MQTT协议中订阅关系是持久化的,因此如果不需要订阅某些Topic,需要调用unsubscribe方法取消订阅关系。
为什么有的Topic的消息能收到有的收不到
原因:
每个消息队列MQTT客户端允许持有的订阅关系数量有限制。如果一个客户端试图订阅超过该限制数量的Topic,则会被丢弃,导致收不到这部分消息。