Yug*_*ari 5 mqtt esp8266 micropython
我想在失败时将 MQTT 客户端重新连接到服务器。
我用于uqmtt.robust重新连接:它可以解决某些故障,但不能处理互联网断开连接。我正在考虑这样做:
while True:
if c.isConnected():# how to check this?
c.wait_msg()
else:
c=MQTTClient(params)
c.connect() #reconnect trial
Run Code Online (Sandbox Code Playgroud)
我尝试通过读取 PINGRESP 来解决,但 ping 是有间隔的,所以我无法确定连接是否有效。
您可以以恒定间隔发送 PING,并在发送 PING 后立即将标志设置为 False。如果您收到 PINGRESP,则将标志设置回 true。当您要发送下一个 PING 时,请检查该标志。如果该标志仍然是 False 意味着您没有收到 PINGRESP 并且您可以假设连接丢失。实际上我已经修改了 umqtt 简单库来支持这里是 git https://github.com/AntonisKekempanos/SonoffMicropythonMQTT。
| 归档时间: |
|
| 查看次数: |
3999 次 |
| 最近记录: |