MQTT 订阅者连接

物联网 MQTT 发布订阅者
2021-06-27 07:51:15

我了解 MQTT 客户端在连接消息后将数据发布到主题。

我不确定订阅主题的 MQTT 客户端在发布到该主题时如何更新。

  • 是不是订阅者必须每次发起连接然后发送订阅消息来检查最新发布的更新?

  • 还是订阅者向broker发送一次订阅消息,每当有新的发布时,broker自动将发布的数据发送给订阅者?

是否有任何选项可以自动启动从代理到订阅者客户端的通信,以使用最新发布的数据更新客户端?

2个回答

要记住的重要一点是,当客户端(客户端可以是订阅者、发布者或两者)连接到代理时,该连接在客户端的生命周期内保持打开状态。这意味着 2 之间始终存在联系。

当客户端订阅时,它会向代理发送一个主题列表(或主题模式,如果它包含通配符)。当代理收到与该列表中的任何条目匹配的消息时,它会将消息通过现有连接发送到该客户端。它不需要打开一个新的连接。

你的第二个问题是正确的。

当发布者发送一条设置了“retain”标志的消息时,任何订阅者在向代理注册时都会收到最新的消息。