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

Mqtt客户机如何知道另一个客户机是否已连接,mqtt,mosquitto,Mqtt,Mosquitto,大家好,我的问题是,我需要保持设备(客户端)的状态,无论它们是否在线 我通过客户端id连接,通过订阅,我可以知道设备已断开连接,但如果他们再次连接,我如何检查他们是否再次连接 简单的回答是你没有(在协议层面) 发布者和订阅者完全不知道对方,消息被发送到主题,而不是特定的订阅客户端 稍长的版本: 您可以使用保留的消息和LWT(最后的遗嘱和遗嘱)做一些事情 e、 g 每个客户端将保留的消息发布到以下主题 online/<clientID> 在线/ 连接时有效负载为true。它还设置L

大家好,我的问题是,我需要保持设备(客户端)的状态,无论它们是否在线


我通过客户端id连接,通过订阅,我可以知道设备已断开连接,但如果他们再次连接,我如何检查他们是否再次连接

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

发布者和订阅者完全不知道对方,消息被发送到主题,而不是特定的订阅客户端

稍长的版本:

您可以使用保留的消息和LWT(最后的遗嘱和遗嘱)做一些事情

e、 g

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

online/<clientID>
在线/
连接时有效负载为
true
。它还设置LWT,如果客户端因网络故障而断开连接,LWT将发布有效负载
false
。如果客户端完全断开连接,则需要将
false
有效负载发布为脱机前的最后一个操作


要判断客户机是否联机,请订阅通配符主题
online/+
,然后检查主题的最后一段中的clientid和有效负载的状态。

简短的回答是您没有(在协议级别上)

发布者和订阅者完全不知道对方,消息被发送到主题,而不是特定的订阅客户端

稍长的版本:

您可以使用保留的消息和LWT(最后的遗嘱和遗嘱)做一些事情

e、 g

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

online/<clientID>
在线/
连接时有效负载为
true
。它还设置LWT,如果客户端因网络故障而断开连接,LWT将发布有效负载
false
。如果客户端完全断开连接,则需要将
false
有效负载发布为脱机前的最后一个操作

要判断客户机是否联机,请订阅
online/+
的通配符主题,然后检查主题的最后一段是否有clientid,以及有效负载是否有状态