ESP-32无法连接到MQTT代理:mqtt_client:错误网络响应

问题描述 投票:-1回答:1

我正在尝试将使用ESP-IDF框架运行的ESP32连接到MQTT。我已成功导入此MQTT library并将配置设置为如下所示:

static void mqtt_app_start(void)
{
    const esp_mqtt_client_config_t mqtt_cfg = {
        // .host = "m15.cloudmqtt.com",
        .uri = "mqtt://rxarkckf:[email protected]:10793", // uri in the format (username:password@domain:port)
        // .host = "m15.cloudmqtt.com", // config with host, port, user, password seperated
        // .port = 10793,
        // .username = "rxarkckf",
        // .password = "smNb81Ppfe7T",

        .event_handle = mqtt_event_handler,
        // .user_context = (void *)your_context
    };

    esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg);
    esp_mqtt_client_start(client);
}

我叫mqtt_app_start();在我的app_main函数中。上传代码后,我的ESP-32没有连接到MQTT代理并输出:

␛[0;32mI (12633410) MQTT_CLIENT: Sending MQTT CONNECT message, type: 1, id: 0000␛[0m
␛[0;31mE (12633710) MQTT_CLIENT: Error network response␛[0m
␛[0;32mI (12633710) MQTT_CLIENT: Error MQTT Connected␛[0m
␛[0;32mI (12633710) MQTT_CLIENT: Reconnect after 10000 ms␛[0m
␛[0;32mI (12633710) MQTT_SAMPLE: MQTT_EVENT_DISCONNECTED␛[0m

我仔细检查过主机,用户名,密码和端口的值都是正确的。当我查看cloudmqtt.com上托管的Web界面上的日志时,我可以看到此输出:

2018-11-17 03:50:53: New connection from 73.94.66.49 on port 10793.
2018-11-17 03:50:53: Invalid protocol "MQIs�" in CONNECT from 73.94.66.49.
2018-11-17 03:50:53: Socket error on client <unknown>, disconnecting.
2018-11-17 03:51:20: New connection from 73.94.66.49 on port 10793.
c mqtt esp32 platformio
1个回答
0
投票

我有使用mosquitto的类似经历。

将此行添加到mqtt_config.h使我的mqtt正常工作。

#define CONFIG_MQTT_PROTOCOL_311

我认为设置此配置的更正确的方法是在sdkconfig.h中,手动或使用“make menuconfig”

© www.soinside.com 2019 - 2024. All rights reserved.