第一次连接时未收到消息
Messages not received on first time connection
我无法在第一次连接时收到消息。更详细地说,user A
已连接并发布消息,但 user B
未连接到 topic.So 当 user B
连接时,他不会收到用户 A 的任何消息因为有第一次连接 b/w user a
和 user b
.
我们如何解决这个问题?
谢谢
pub/sub 的一个原则是发布者和订阅者是解耦的,所以你真的不应该考虑 user a
连接到 user b
。
如果您希望客户端在未连接时接收消息(将保留的消息留给一侧),唯一的方法是:
- 预先连接
cleansession=false
- 订阅 QoS>0(或在 mosquitto 上使用
queue_qos0_messages
选项)
- 确保发布的消息 QoS>0
- 当客户端重新连接时,使用
cleansession=false
要对此进行测试,请尝试:
mosquitto_sub -i prajbot-singh -h test.mosquitto.org -t prajbot-singh -c -q 1
然后退出 mosquitto_sub 和 运行:
mosquitto_pub -h test.mosquitto.org -t prajbot-singh -m hello -q 1
又是运行mosquitto_sub:
mosquitto_sub -i prajbot-singh -h test.mosquitto.org -t prajbot-singh -c -q 1
我无法在第一次连接时收到消息。更详细地说,user A
已连接并发布消息,但 user B
未连接到 topic.So 当 user B
连接时,他不会收到用户 A 的任何消息因为有第一次连接 b/w user a
和 user b
.
我们如何解决这个问题?
谢谢
pub/sub 的一个原则是发布者和订阅者是解耦的,所以你真的不应该考虑 user a
连接到 user b
。
如果您希望客户端在未连接时接收消息(将保留的消息留给一侧),唯一的方法是:
- 预先连接
cleansession=false
- 订阅 QoS>0(或在 mosquitto 上使用
queue_qos0_messages
选项) - 确保发布的消息 QoS>0
- 当客户端重新连接时,使用
cleansession=false
要对此进行测试,请尝试:
mosquitto_sub -i prajbot-singh -h test.mosquitto.org -t prajbot-singh -c -q 1
然后退出 mosquitto_sub 和 运行:
mosquitto_pub -h test.mosquitto.org -t prajbot-singh -m hello -q 1
又是运行mosquitto_sub:
mosquitto_sub -i prajbot-singh -h test.mosquitto.org -t prajbot-singh -c -q 1