Mqtt客户端如何知道另一个客户端是否已连接

时间:2016-07-09 09:20:49

标签: mqtt mosquitto

大家好,我的问题是我需要保持设备(客户端)状态,因为它们在线或不在线。

我正在通过客户端ID进行连接,并且从订阅中将有主题我可以知道设备已断开连接,但如果它们再次连接,我怎样才能检查它们是否再次连接。

1 个答案:

答案 0 :(得分:2)

简短的回答是你没有(在协议层面)。

发布者和订阅者完全没有意识到彼此,消息被发送到主题而不是特定的订阅客户端。

稍长的版本:

你可以对保留的信息和LWT(遗嘱和遗嘱)做一些事情

e.g。

每个客户端都会将保留的消息发布到以下主题

online/<clientID>

连接时有效负载为true。它还设置LWT,如果客户端因网络故障而断开连接,则会发布false的有效负载。如果客户端干净地断开连接,则需要在脱机之前发布false有效负载作为其最后一次操作。

要判断客户端是否在线,您订阅了online/+的通配符主题,然后检查该主题的最后一段是否为clientid以及该州的有效负载。