【发布时间】:2018-03-01 18:46:39
【问题描述】:
假设我有两个客户端,客户端 ID 分别为 device1 和 device2。在device1 向代理发送发布消息之前,它需要检查device2 是否仍然连接到代理。如何从客户端device1 中检查device2 的连接性?
我正在使用mosquitto broker 和paho client
【问题讨论】:
假设我有两个客户端,客户端 ID 分别为 device1 和 device2。在device1 向代理发送发布消息之前,它需要检查device2 是否仍然连接到代理。如何从客户端device1 中检查device2 的连接性?
我正在使用mosquitto broker 和paho client
【问题讨论】:
简短的回答是您不能在 MQTT 协议级别执行此操作。
您能做的最好的事情就是使用状态主题。当客户端连接时,它会将有效负载true 的保留消息发布到status/[client-id] 之类的主题。就在它断开连接之前,将带有有效负载false 的消息发布到同一主题。为了确保它在崩溃时被标记为离开,那么您需要设置一个 Last Will and 遗嘱消息以在代理注意到客户端不再响应 ping 时发布 false。
【讨论】: