假设我有两个客户端ID为device1
和device2
的客户端。在device1
向代理发送发布消息之前,需要检查device2
是否仍然连接到代理。如何检查来自客户device2
的{{1}}的连接。?
我正在使用device1
和mosquitto broker
答案 0 :(得分:2)
简短的回答是,您无法在MQTT协议级别执行此操作。
您可以做的最好的事情是使用状态主题。当客户端连接时,它会将带有有效负载true
的保留消息发布到类似status/[client-id]
的主题。在断开连接之前,会将有效负载false
的消息发布到同一主题。如果它崩溃,确定它被标记为离开,那么当经纪人注意到客户端不再响应ping时,您需要设置最后遗嘱和遗嘱消息以发布false
。