一个客户端如何检查另一个客户端是否在python中连接到代理。

时间:2018-03-01 10:20:33

标签: mqtt mosquitto paho

假设我有两个客户端ID为device1device2的客户端。在device1向代理发送发布消息之前,需要检查device2是否仍然连接到代理。如何检查来自客户device2的{​​{1}}的连接。?

我正在使用device1mosquitto broker

1 个答案:

答案 0 :(得分:2)

简短的回答是,您无法在MQTT协议级别执行此操作。

您可以做的最好的事情是使用状态主题。当客户端连接时,它会将带有有效负载true的保留消息发布到类似status/[client-id]的主题。在断开连接之前,会将有效负载false的消息发布到同一主题。如果它崩溃,确定它被标记为离开,那么当经纪人注意到客户端不再响应ping时,您需要设置最后遗嘱和遗嘱消息以发布false