This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3230SF:CC3235SF FreeRTOS MQTT 示例无法连接(错误–111、–456、–468、–2006)

Guru**** 2337880 points
Other Parts Discussed in Thread: CC3235SF, CC3200
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1524528/cc3230sf-cc3235sf-freertos-mqtt-example-fails-to-connect-errors-111-456-468-2006

器件型号:CC3230SF
Thread 中讨论的其他器件:CC3235SFCC3200

工具/软件:

我正在使用 TI 的 CC3235SF LaunchXL FreeRTOS MQTT 示例通过 Wi-Fi 连接到我自己的代理(HiveMQ)、但 MQT Client_Connect ()失败、出现错误–111、–456、–468和–2006。 为了成功建立与 Mqtt_Client_的安全连接、我需要什么确切的证书格式(PEM 与 DER、根与链)、TLS 参数和示例设置(包括如何填充 MQTT secure_files 和 MQTT MQTT Client_Conn)、以便订阅和发布消息?

以下是获得的更改和结果:

在主示例工程中修改了代码:

#define WILL_TOPIC "devices/865031063735368/telemetry"
#define WILL_MSG "Client start to test"
#define WILL_QOS MQTT_QOS_2
#define WILL_RETAIN false

/* Defining Broker IP address and port Number */
#define SERVER_ADDRESS "mqtt.mssve.ai"
#define SECURED_PORT_NUMBER 8883

#define SUBSCRIPTION_TOPIC0 "devices/865031063735368/telemetry"

/* Defining Publish Topic Values */
#define PUBLISH_TOPIC0 "devices/865031063735368/telemetry"
#define PUBLISH_TOPIC0_DATA \
"This is the testing results"

/* Defining Enrolled Topic Values. */
#define ENROLLED_TOPIC "devices/865031063735368/telemetry"

char ClientId[13] = "Inno1234";

/* Client User Name and Password */
const char *ClientUsername = "test";
const char *ClientPassword = "1234";

/* Server User Name and Password */
const char *ServerUsername = "test";
const char *ServerPassword = "1234";

#ifdef SECURE_CLIENT

char *Mqtt_Client_secure_files[CLIENT_NUM_SECURE_FILES] = {"isrgrootx1.der"};

MQTTClient_ConnParams Mqtt_ClientCtx =
{
MQTTCLIENT_NETCONN_SEC | MQTT_DEV_NETCONN_URL,
SERVER_ADDRESS, //SERVER_ADDRESS,
SECURED_PORT_NUMBER, // PORT_NUMBER
SLNETSOCK_SEC_METHOD_SSLv3_TLSV1_2,
SLNETSOCK_SEC_CIPHER_FULL_LIST,
CLIENT_NUM_SECURE_FILES,
Mqtt_Client_secure_files
};

#ifdef SECURE_SERVER
/* In order to use secured socket method, cipher, n_files and secure_files */
/* must be configured. certificates also must be programmed */
/* ("server-key.pem", "server-cert.pem") */
#define SERVER_NUM_SECURE_FILES 2
char *Mqtt_Server_secure_files[SERVER_NUM_SECURE_FILES] =
{ "isrgrootx1.pem", "isrgrootx1.der"};

MQTTServer_ConnParams Mqtt_Server =
{
SECURED_PORT_NUMBER,
SLNETSOCK_SEC_METHOD_SSLv3_TLSV1_2,
SLNETSOCK_SEC_CIPHER_FULL_LIST,
SERVER_NUM_SECURE_FILES,
Mqtt_Server_secure_files
};


输出:

[NetApp 事件]设备获取的 IP
器件以工作站模式启动
[WLAN 事件] STA 连接到 AP: Innowave , BSSID: A6:A4:6b:A4:97:7c
[NetApp 事件]设备获取的 IP

设备已连接到 Innowave
设备 IP 地址为192.168.100.137

成功创建 MQTT 客户端
已成功创建客户端线程
MQTT 客户端设置成功
.... 连接到代理失败、错误代码:-111

CC3200发布以下消息
主题:设备/865031063735368/遥测
数据:这是测试结果

机载客户端已断开连接
才能重新连接本地客户端、复位板。

Aiman,