gpt4 book ai didi

MQTT - 监听 ping、断开和连接事件

转载 作者:行者123 更新时间:2023-12-05 05:15:22 32 4
gpt4 key购买 nike

我有“服务器端”mqtt 客户端,用于监视和管理远程 mqtt 客户端。我想扩展此服务器模块以密切关注远程客户端的连接。

在正常操作期间,远程客户端定期 PING 代理,根据代理日志:

1532924170: Received PINGREQ from c51
1532924170: Sending PINGRESP to c51

当发生断开连接时,代理日志也会显示:

1532924976: Client c51 has exceeded timeout, disconnecting.
1532924976: Socket error on client c51, disconnecting.

以及随后的重新连接:

1532924978: New client connected from X.X.X.X as c51 (c1, k30).
1532924978: Sending CONNACK to c51 (0, 0)

我想从服务器模块持有的 mqtt-client 监控这 3 个事件。这可能吗?如果不是,您可以推荐什么替代“健康”监测方法?

最佳答案

不,您不能从连接的客户端读取这些内容。

唯一的纯 MQTT 方法是使用 Last Will and Testament (LWT) 功能。您让客户端设置 LWT 将保留消息发布到客户端特定主题,将其标记为离线。然后当客户端连接时,它应该发布一条保留消息以显示您在线。如果您完全断开连接(不是由保持事件超时触发,您应该在断开连接之前手动发布 LWT 消息作为最后一件事)。

还值得指出的是,只有在保持事件期间客户端和代理之间没有发送其他消息时,才会发送 ping 消息。

关于MQTT - 监听 ping、断开和连接事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51587122/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com