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