大家好,我的问题是我需要保持设备(客户端)状态,因为它们是否联机。
我正在通过客户端ID进行连接,通过订阅该主题,我可以知道该设备已断开连接,但是如果它们重新连接,我如何检查它们是否再次连接。
简短的答案是您不(在协议级别)。
发布者和订阅者完全不了解彼此,消息发送到主题而不是特定的订阅客户端。
稍长的版本:
您可以使用保留的消息和LWT(最后的遗嘱)做点什么
例如
每个客户端都将保留的消息发布到以下主题
online/<clientID>
带有true
连接时的有效负载。它还设置了LWT,它将发布false
客户端是否因网络故障而断开连接的有效负载。如果客户端干净地断开连接,那么它将需要false
在脱机之前发布有效负载,这是它的最后一个操作。
要确定客户端是否在线,您可以订阅的通配符主题,online/+
然后检查主题的最后一段以获取clientid和状态的有效负载。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句