当由于网络波动等情况造成MQTT断开时,如果能获取断线状态 那么我们就可以及时启用断线程序或者继续尝试连接MQTT服务器 恢复服务,以下例子检测了设备与MQTT服务器连接并闪烁LED提示 同时尝试恢复MQTT服务与重新订阅text主题,多功能按钮0单击将发送 Hello打印到串口监视器,使用请修改为自己的WiFi与MQTT服务器信息 MixIO也可使用此方法处理离线问题Serial9600Netcore-65080F1234567890bemfa.com9501d597ed83edb4c3fc25c89377dbe83f01textSerialprintlnmqtt_dataattachClick0LOWHellotext11000!client.connected()MQTT服务器断开连接板载LED闪烁提示MQTT掉线2HIGH2尝试重连MQTT服务器,格式参考setup中相关代码String client_id = "d597ed83edb4c3fc25c89377dbe83f0e"; if (client.connect(client_id.c_str(), mqtt_username, mqtt_password)) { Serial.println("Public emqx mqtt broker connected"); } else { Serial.print("failed with state "); Serial.print(client.state()); }订阅恢复text主题client.subscribe(String("text").c_str());2HIGH{"xtal":"80","vt":"flash","exception":"disabled","stacksmash":"disabled","ssl":"all","mmu":"3232","non32xfer":"fast","ResetMethod":"nodemcu","CrystalFreq":"26","FlashFreq":"40","FlashMode":"dout","eesz":"1M64","led":"2","sdk":"nonosdk_190703","ip":"lm2f","dbg":"Disabled","wipe":"none","baud":"115200"}CiNpbmNsdWRlIDxFU1A4MjY2V2lGaS5oPgojaW5jbHVkZSA8UHViU3ViQ2xpZW50Lmg+CgojaW5jbHVkZSA8T25lQnV0dG9uLmg+CiNpbmNsdWRlIDxTaW1wbGVUaW1lci5oPgoKY29uc3QgY2hhciAqbXF0dF9icm9rZXIgPSAiYmVtZmEuY29tIjsKY29uc3QgY2hhciAqbXF0dF91c2VybmFtZSA9ICIiOwpjb25zdCBjaGFyICptcXR0X3Bhc3N3b3JkID0gIiI7CmNvbnN0IGludCBtcXR0X3BvcnQgPSA5NTAxOwpTdHJpbmcgbXF0dF90b3BpYyA9ICIiOwpTdHJpbmcgbXF0dF9kYXRhID0gIiI7CmJvb2xlYW4gbXF0dF9zdGF0dXMgPSBmYWxzZTsKV2lGaUNsaWVudCBlc3BDbGllbnQ7ClB1YlN1YkNsaWVudCBjbGllbnQoZXNwQ2xpZW50KTsKdm9pZCBjYWxsYmFjayhjaGFyICp0b3BpYywgYnl0ZSAqcGF5bG9hZCwgdW5zaWduZWQgaW50IGxlbmd0aCkgewogIFN0cmluZyBkYXRhID0gIiI7CiAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgZGF0YSA9IFN0cmluZyhkYXRhKSArIFN0cmluZygoY2hhcikgcGF5bG9hZFtpXSk7CiAgfQogIG1xdHRfdG9waWMgPSBTdHJpbmcodG9waWMpOwogIG1xdHRfZGF0YSA9IGRhdGE7CiAgbXF0dF9zdGF0dXMgPSB0cnVlOwp9CgpPbmVCdXR0b24gYnV0dG9uMCgwLHRydWUpOwpTaW1wbGVUaW1lciB0aW1lcjsKCnZvaWQgYXR0YWNoQ2xpY2swKCkgewogIGNsaWVudC5wdWJsaXNoKFN0cmluZygidGV4dCIpLmNfc3RyKCksU3RyaW5nKCJIZWxsbyIpLmNfc3RyKCkpOwp9Cgp2b2lkIFNpbXBsZV90aW1lcl8xKCkgewogIC8vIE1RVFTmnI3liqHlmajmlq3lvIDov57mjqUKICBpZiAoIWNsaWVudC5jb25uZWN0ZWQoKSkgewogICAgZGlnaXRhbFdyaXRlKDIsKCFkaWdpdGFsUmVhZCgyKSkpOwogICAgU3RyaW5nIGNsaWVudF9pZCA9ICJkNTk3ZWQ4M2VkYjRjM2ZjMjVjODkzNzdkYmU4M2YwZSI7CiAgICAgIGlmIChjbGllbnQuY29ubmVjdChjbGllbnRfaWQuY19zdHIoKSwgbXF0dF91c2VybmFtZSwgbXF0dF9wYXNzd29yZCkpIHsKICAgICAgICBTZXJpYWwucHJpbnRsbigiUHVibGljIGVtcXggbXF0dCBicm9rZXIgY29ubmVjdGVkIik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgU2VyaWFsLnByaW50KCJmYWlsZWQgd2l0aCBzdGF0ZSAiKTsKICAgICAgICBTZXJpYWwucHJpbnQoY2xpZW50LnN0YXRlKCkpOwogICAgICB9CiAgICBjbGllbnQuc3Vic2NyaWJlKFN0cmluZygidGV4dCIpLmNfc3RyKCkpOwoKICB9IGVsc2UgewogICAgZGlnaXRhbFdyaXRlKDIsSElHSCk7CgogIH0KfQoKdm9pZCBzZXR1cCgpewogIFNlcmlhbC5iZWdpbig5NjAwKTsKICBXaUZpLmJlZ2luKCJOZXRjb3JlLTY1MDgwRiIsICIxMjM0NTY3ODkwIik7CiAgd2hpbGUgKFdpRmkuc3RhdHVzKCkgIT0gV0xfQ09OTkVDVEVEKSB7CiAgICBkZWxheSg1MDApOwogICAgU2VyaWFsLnByaW50KCIuIik7CiAgfQogIFNlcmlhbC5wcmludGxuKCJMb2NhbCBJUDoiKTsKICBTZXJpYWwucHJpbnQoV2lGaS5sb2NhbElQKCkpOwoKICBjbGllbnQuc2V0U2VydmVyKG1xdHRfYnJva2VyLCBtcXR0X3BvcnQpOwpjbGllbnQuc2V0Q2FsbGJhY2soY2FsbGJhY2spOwp3aGlsZSAoIWNsaWVudC5jb25uZWN0ZWQoKSkgewogIFN0cmluZyBjbGllbnRfaWQgPSAiZDU5N2VkODNlZGI0YzNmYzI1Yzg5Mzc3ZGJlODNmMDEiOwogIGlmIChjbGllbnQuY29ubmVjdChjbGllbnRfaWQuY19zdHIoKSwgbXF0dF91c2VybmFtZSwgbXF0dF9wYXNzd29yZCkpIHsKICAgIFNlcmlhbC5wcmludGxuKCJQdWJsaWMgZW1xeCBtcXR0IGJyb2tlciBjb25uZWN0ZWQiKTsKICB9IGVsc2UgewogICAgU2VyaWFsLnByaW50KCJmYWlsZWQgd2l0aCBzdGF0ZSAiKTsKICAgIFNlcmlhbC5wcmludChjbGllbnQuc3RhdGUoKSk7CiAgICBkZWxheSgyMDAwKTsKICB9Cn0KCiAgY2xpZW50LnN1YnNjcmliZShTdHJpbmcoInRleHQiKS5jX3N0cigpKTsKICBidXR0b24wLmF0dGFjaENsaWNrKGF0dGFjaENsaWNrMCk7CiAgcGluTW9kZSgyLCBPVVRQVVQpOwogIHRpbWVyLnNldEludGVydmFsKDEwMDBMLCBTaW1wbGVfdGltZXJfMSk7Cgp9Cgp2b2lkIGxvb3AoKXsKICAvL+W9k+eUseS6jue9kee7nOazouWKqOetieaDheWGtemAoOaIkE1RVFTmlq3lvIDml7bvvIzlpoLmnpzog73ojrflj5bmlq3nur/nirbmgIEKICAvLyDpgqPkuYjmiJHku6zlsLHlj6/ku6Xlj4rml7blkK/nlKjmlq3nur/nqIvluo/miJbogIXnu6fnu63lsJ3or5Xov57mjqVNUVRU5pyN5Yqh5ZmoCiAgLy/mgaLlpI3mnI3liqHvvIzku6XkuIvkvovlrZDmo4DmtYvkuoborr7lpIfkuI5NUVRU5pyN5Yqh5Zmo6L+e5o6l5bm26Zeq54OBTEVE5o+Q56S6CiAgLy/lkIzml7blsJ3or5XmgaLlpI1NUVRU5pyN5Yqh5LiO6YeN5paw6K6i6ZiFdGV4dOS4u+mimO+8jOWkmuWKn+iDveaMiemSrjDljZXlh7vlsIblj5HpgIEKICAvL0hlbGxv5omT5Y2w5Yiw5Liy5Y+j55uR6KeG5Zmo77yM5L2/55So6K+35L+u5pS55Li66Ieq5bex55qEV2lGaeS4jk1RVFTmnI3liqHlmajkv6Hmga8KICAvL01peElP5Lmf5Y+v5L2/55So5q2k5pa55rOV5aSE55CG56a757q/6Zeu6aKYCiAgY2xpZW50Lmxvb3AoKTsKCiAgaWYgKG1xdHRfc3RhdHVzKSB7CiAgICBpZiAoU3RyaW5nKG1xdHRfdG9waWMpLmVxdWFscyhTdHJpbmcoInRleHQiKSkpIHsKICAgIFNlcmlhbC5wcmludGxuKG1xdHRfZGF0YSk7CiAgICBtcXR0X3N0YXR1cyA9IGZhbHNlOwogICAgfQogIH0KCiAgYnV0dG9uMC50aWNrKCk7CiAgdGltZXIucnVuKCk7Cgp9