接收离线消息 mqtt
Receive offline messages mqtt
我使用 mosquitto 作为代理,使用 paho(python) 作为客户端。我正在尝试让订阅者接收离线消息。
为此,我做了以下更改:
- 固定客户端 ID
- qos 级别 2
但是,订阅者仍然无法接收消息。
有什么帮助吗?
谢谢,
拉胡尔
为了让您的客户端成为持久客户端并接收离线时发送到主题的消息,您需要满足以下条件:
- 固定客户端 ID(如您所做)
- 始终连接 clean_session=False
- 必须在 QoS>0 的情况下进行订阅
- 发布的消息必须具有 QoS>0
我最常犯的错误是忘记了第 3 点和第 4 点中的任何一个,所以我使用 QoS=0 进行发布或使用 QoS=0 进行订阅,这两种情况都会导致消息无法存储。
您还可以查看 queue_qos0_messages
选项来告诉代理存储 QoS=0 消息。请注意,这是一个可能特定于 mosquitto 的实现细节。
检查是否在向主题发布消息时将保留标志设置为真,如果保留=真,订阅主题的新连接的客户端将收到保留的消息。
我使用 mosquitto 作为代理,使用 paho(python) 作为客户端。我正在尝试让订阅者接收离线消息。
为此,我做了以下更改:
- 固定客户端 ID
- qos 级别 2
但是,订阅者仍然无法接收消息。
有什么帮助吗?
谢谢, 拉胡尔
为了让您的客户端成为持久客户端并接收离线时发送到主题的消息,您需要满足以下条件:
- 固定客户端 ID(如您所做)
- 始终连接 clean_session=False
- 必须在 QoS>0 的情况下进行订阅
- 发布的消息必须具有 QoS>0
我最常犯的错误是忘记了第 3 点和第 4 点中的任何一个,所以我使用 QoS=0 进行发布或使用 QoS=0 进行订阅,这两种情况都会导致消息无法存储。
您还可以查看 queue_qos0_messages
选项来告诉代理存储 QoS=0 消息。请注意,这是一个可能特定于 mosquitto 的实现细节。
检查是否在向主题发布消息时将保留标志设置为真,如果保留=真,订阅主题的新连接的客户端将收到保留的消息。