Page 1 of 1

关于esp32的MQTT例程问题

Posted: Fri Aug 04, 2023 10:36 am
by kalok_2022
我现在在调试MQTT的程序,用到idf里面的esp-idf/examples/protocols/mqtt/tcp例程,在mqtt_app_start里面初始化esp_mqtt_client_config_t mqtt_cfg这个结构体的时候,你们例程里面只初始化url, 但是我在网上看到很多地方的参考程序都是初始化这些结构体成员的:

esp_mqtt_client_config_t mqtt_cfg = {
.host = "192.168.31.107", //MQTT服务器IP
.event_handle = mqtt_event_handler, //MQTT事件
.port=1883, //端口
.username = "admin", //用户名
.password = "public", //密码
// .user_context = (void *)your_context
};

但是我查看了一下esp_mqtt_client_config_t 的结构体成员,好像都没有.host这个成员,而且其他的成员都是分开放在里面不同的结构体里面,我想问问,如果我想对.host成员初始化 应该怎么做?

Re: 关于esp32的MQTT例程问题

Posted: Tue Aug 08, 2023 8:10 am
by ESP_YJM
host 的话,你还需要设置 path(如果有的话),还有必须设置 transport。其他都是一样的。
一般我们会用 uri 来包含 host,path 和 transport。比如:mqtt://test.org/test. 其中,host 是 test.org,transport 是 MQTT_TRANSPORT_OVER_TCP,path 是 test。