情况如下:
有一个客户端,一个发布者,它没有订阅任何主题。该客户端有其自己的单个主题,并规律地向其发布数据。但是没有其他客户端订阅该主题。
因此,这个贫穷而孤独的客户端可能被视为异常(第5.4.8章)。

服务器实现可能会监视客户端行为以检测潜在的安全事件。例如:


[...]


发送无法传递的消息(该主题没有订阅者)



它不知道有多少客户订阅了该主题。因此,它不知道它可能被视为具有异常行为的客户端。
那么,这种客户端会发生什么情况将取决于服务器的实现?有什么做法,应该简单地断开连接,但是然后不尝试重新连接吗?

#1 楼

如您所说,这取决于服务器的实现,尤其是所传输消息的“至少一次”消息的QoS。

IMHO MQTT是广播系统,不是端对端协议在两台计算机之间切换,因此我们每次创建主题时都不需要绝对需要订阅者。

我可以发布任何东西(温度,...),两个月后实现可以读取的内容,甚至可以删除它,并在传感器仍发布数据时想到其他内容。