如何检查 Micropython umqtt 客户端是否已连接?

How to check Micropython umqtt client is connected?

我想在 MQTT 客户端失败时重新连接到服务器。

我正在使用 uqmtt.robust 重新连接:它可以解决一些故障,但不能处理互联网断开连接。我正在考虑这样做:

while True:
 if c.isConnected():# how to check this?
  c.wait_msg()
 else:
  c=MQTTClient(params)
  c.connect() #reconnect trial

我试图通过阅读 PINGRESP 来解决,但 ping 是间歇性的,所以我无法确定连接是否有效。

您可以以恒定间隔发送 PING 并在发送 PING.If 后立即将标志设置为 False 当您收到 PINGRESP 时将标志设置回 true.Check 标志发送下一个 PING.If 标志仍然是 False 意味着你没有收到 PINGRESP 并且你可以假设连接是 lost.Actually 我已经修改了 umqtt 简单库来支持这里是 git https://github.com/AntonisKekempanos/SonoffMicropythonMQTT.