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

如何检查Micropython umqtt客户端是否已连接?,mqtt,esp8266,micropython,Mqtt,Esp8266,Micropython,我想在出现故障时将MQTT客户端重新连接到服务器 我正在使用uqmtt.robust进行重新连接:它可以处理某些故障,但不能处理internet断开连接。我正在考虑这样做: while True: if c.isConnected():# how to check this? c.wait_msg() else: c=MQTTClient(params) c.connect() #reconnect trial 我试图通过读取PINGRESP来解决此问题,但PING处于间隔状态

我想在出现故障时将MQTT客户端重新连接到服务器

我正在使用
uqmtt.robust
进行重新连接:它可以处理某些故障,但不能处理internet断开连接。我正在考虑这样做:

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

我试图通过读取PINGRESP来解决此问题,但PING处于间隔状态,因此我无法找到连接是否处于活动状态。

您可以以固定间隔发送PING,并在发送PING后立即将标志设置为False。如果收到PINGRESP,请将标志设置回true。在即将发送下一个PING时检查标志。如果标志为仍然为False表示您没有收到PINGRESP,您可以假设连接已丢失。实际上,我修改了umqtt简单库以支持这一点,这里是git