如何解决ESP32 MQTT 客户端卡在 client.subscribe()
我正在尝试使用 MQTTClient 将我的 ESP32 连接到 mosquitto,但是在尝试订阅任何主题时它会卡住,并且不会收到消息。我已经搜索了整个下午,找不到任何解决方案。我还使用 MQTTBox 测试了代理,我可以很好地订阅和发布。
#include <Arduino.h>
#include <MQTTClient.h>
#include "WiFi.h"
#include "secrets.h"
#include <WiFiManager.h>
WiFiClient net = WiFiClient();
MQTTClient client = MQTTClient(256);
void connectMQTT(){
WiFiManager wifiManager;
if(!wifiManager.autoConnect(WIFI_SSID,WIFI_PASSWORD)) {
Serial.println("Failed to connect and hit timeout");
//reset and try again,or maybe put it to deep sleep
ESP.restart();
delay(1000);
}
Serial.println("Connected to Wi-Fi");
// Connect to the MQTT broker
client.begin(MQTT_ENDPOINT,MQTT_PORT,net);
// Create a message handler
client.onMessage(messageHandler);
Serial.println("Connecting to MQTT");
while (!client.connect(THINGNAME)) {
Serial.print(".");
delay(100);
}
if(!client.connected()){
Serial.println("MQTT Timeout!");
return;
}
Serial.println("MQTT Connected!");
Serial.println("Subscribing to irtopic");
// Subscribe to topics
client.subscribe("esp32/ir");
Serial.println("");
Serial.println("Success!");
}
void setup() {
Serial.begin(115200);
connectMQTT();
}
和串行输出:
*WM:
*WM: AutoConnect
*WM: Connecting as wifi client...
*WM: Using last saved values,should be faster
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.0.155
Connected to Wi-Fi
Connecting to MQTT
MQTT Connected!
Subscribing to irtopic
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。