接收离线消息 mqtt

Receive offline messages mqtt

我使用 mosquitto 作为代理,使用 paho(python) 作为客户端。我正在尝试让订阅者接收离线消息。

为此,我做了以下更改:

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

有什么帮助吗?

谢谢, 拉胡尔

为了让您的客户端成为持久客户端并接收离线时发送到主题的消息,您需要满足以下条件:

  1. 固定客户端 ID(如您所做)
  2. 始终连接 clean_session=False
  3. 必须在 QoS>0 的情况下进行订阅
  4. 发布的消息必须具有 QoS>0

我最常犯的错误是忘记了第 3 点和第 4 点中的任何一个,所以我使用 QoS=0 进行发布或使用 QoS=0 进行订阅,这两种情况都会导致消息无法存储。

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

检查是否在向主题发布消息时将保留标志设置为真,如果保留=真,订阅主题的新连接的客户端将收到保留的消息。