大家好,我的问题是我需要保持设备(客户端)状态,因为它们在线或不在线。
我正在通过客户端ID进行连接,并且从订阅中将有主题我可以知道设备已断开连接,但如果它们再次连接,我怎样才能检查它们是否再次连接。
答案 0 :(得分:2)
简短的回答是你没有(在协议层面)。
发布者和订阅者完全没有意识到彼此,消息被发送到主题而不是特定的订阅客户端。
稍长的版本:
你可以对保留的信息和LWT(遗嘱和遗嘱)做一些事情
e.g。
每个客户端都会将保留的消息发布到以下主题
online/<clientID>
连接时有效负载为true
。它还设置LWT,如果客户端因网络故障而断开连接,则会发布false
的有效负载。如果客户端干净地断开连接,则需要在脱机之前发布false
有效负载作为其最后一次操作。
要判断客户端是否在线,您订阅了online/+
的通配符主题,然后检查该主题的最后一段是否为clientid以及该州的有效负载。