我有一个发布者,它在"/ex/topicA/“下发送消息,另一个发布者在"/ex/topicB/”下发送消息给蚊子代理。
订阅者在"/ex/#“下不断地从broker订阅。
现在,由于网络连接不良,一个主题为"/ex/topicA“的出版商没有将数据发送给蚊子经纪人。
现在,paho mqtt订阅者如何知道哪个发布者没有将数据发送给mqtt?
发布于 2019-08-07 18:24:27
在基本协议级,它们不需要。
发布/订阅消息传递的部分意义在于,它将生产数据的用户与消费数据的用户完全解耦。
订阅者订阅了一个主题,可能永远不会发布关于该主题的消息,他们不应该关心哪个发布者发送了该消息。同样,发布者将消息发布到一个主题,可能有0到多个客户端订阅该主题。
如果你真的需要通知客户端在线/离线,那么有一些技术可以做到这一点。通常的版本是让客户端在连接后立即将保留的消息发布到特定主题。例如client/a/online value 1。他们应该在连接详细信息中包含遗嘱和遗嘱信息,以便在意外断开连接的情况下将0发布到此主题。他们还会在指令关闭之前手动发布0。
附注:虽然在规范中有效,但主题不应该以/开头,因为这会在开始时在主题树中添加一个空条目,并破坏共享订阅等高级功能。
https://stackoverflow.com/questions/57391459
复制相似问题