解决mqtt有时候收不到消息

项目场景:

mqtt订阅之后有时候收不到消息

使用测试工具发订阅消息


问题描述

mqtt订阅之后有时候收不到消息

原因分析:

cleanSession: true

每次客户端 连接到 MQTT Broker 时,都会创建一个新的会话,原来的订阅、未完成的 QoS1、QoS2 消息会全部丢弃。


解决方案:

cleanSession: false

  • 持久化会话,当客户端断开后,Broker 仍然会保留客户端的订阅关系和 QoS1/QoS2 等未收到的消息。
  • 断线后,Broker 会继续为该客户端缓存消息,下次该客户端用同一个 clientId 重新连接后,会收到断线期间的消息。

你可能感兴趣的:(mqtt,前端)