第一次连接时未收到消息

Messages not received on first time connection

我无法在第一次连接时收到消息。更详细地说,user A 已连接并发布消息,但 user B 未连接到 topic.So 当 user B 连接时,他不会收到用户 A 的任何消息因为有第一次连接 b/w user auser 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