接收离线消息mqtt

rao*_*rao 2 mqtt mosquitto paho

我使用mosquitto作为经纪人和paho(python)作为客户.我正在尝试让订阅者接收离线消息.

为此我做了以下更改:

  • 修复了客户端ID
  • qos 2级

但是,订阅者仍然无法接收消息.

任何帮助?

谢谢,拉胡尔

ral*_*ght 13

为了使您的客户端成为持久客户端并接收在脱机时发送给主题的消息,您需要满足以下条件:

  1. 修复了客户端ID(就像你一样)
  2. 始终与clean_session = False连接
  3. 必须使用QoS> 0进行订阅
  4. 发布的消息必须具有QoS> 0

我最常犯的错误是忘记了第3点和第4点中的任何一个,因此我发布QoS = 0或订阅QoS = 0,其中任何一个都会导致消息无法存储.

您还可以查看queue_qos0_messages告诉代理存储QoS = 0消息的选项.请注意,这是一个可能特定于mosquitto的实现细节.