代码之家  ›  专栏  ›  技术社区  ›  Invader Zim

检查MQTT发布服务器/订阅服务器是否仍然连接[重复]

  •  0
  • Invader Zim  · 技术社区  · 6 年前

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

    我是通过一个客户端ID连接的,从订阅这里我可以知道设备是断开连接的,但如果他们再次连接,我如何检查他们是否再次连接。

    0 回复  |  直到 8 年前
        1
  •  2
  •   hardillb    8 年前

    简而言之,你没有(在协议层面)。

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

    稍长的版本:

    您可以使用保留邮件和lwt(最后遗嘱)做些事情

    例如

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

    online/<clientID>
    

    有效载荷为 true 当它连接起来。它还设置了lwt,该lwt将发布 false 如果客户端因网络故障而断开连接。如果客户端完全断开连接,则需要发布 假的 负载作为脱机前的最后一个操作。

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