arduino - ESP32 MQTT 客户端卡在 client.subscribe()
问题描述
我正在尝试使用 MQTTClient 将我的 ESP32 连接到 mosquitto,但是在尝试订阅任何主题时它会卡住并且它不会接收消息。我已经搜索了一个下午,找不到任何解决方案。我还用 MQTTBox 测试了代理,我可以很好地订阅和发布。
下面是上传到 NodeMCU 的代码:
#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
解决方案
推荐阅读
- swiftui - SwiftUI - 扩展 TextField 以填充视图
- json - 有没有办法导入 json 数据并将每个对象映射到 Firestore 中的单独文档?
- html - 十字光标变为半透明
- c# - GetAysnc by Id 从多对多实体框架
- html - div后文本移动到下一行
- node.js - 如何使用版本在 Docker 构建上缓存 node_modules?
- bootstrap-modal - 如何在引导程序中关闭弹出模式窗口
- swift - mac Catalyst下如何获取sceneWindow的大小和位置
- mysql - 我无法合并两个表
- python - QValueAxis 显示乱码(中文)?