第一次连接时未收到消息

时间:2015-12-21 12:00:54

标签: mqtt mosquitto

我无法在第一次连接时收到消息。更详细地说,user A已连接并发布消息,但user B未与该主题相关联。因此当user B连接时,他将不会收到来自用户A的任何消息,因为那里是第一次连接黑白user auser b

我们如何解决此问题?

谢谢

1 个答案:

答案 0 :(得分:1)

pub / sub的一个原则是发布者和订阅者是分离的,所以你不应该考虑user auser b的关联。

如果您希望客户端在未连接时接收消息(将保留的消息留给一方),唯一的方法是:

  • 事先与cleansession=false
  • 联系
  • 使用QoS> 0订阅(或使用queue_qos0_messages选项在mosquitto上使用)
  • 确保使用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