如何修复 ESP32 Last error reported from esp-tls: 0x8008
问题:
尝试在 ESP32 上使用 TLS(如 MQTTS 或 HTTPS)时,你看到类似这样的错误消息
esp_tls_error_tcp_closed.txt
E (333183) MQTT_CLIENT: mqtt_message_receive: transport_read() error: errno=119
[328153][E][MyMQTT.cpp:80] log_error_if_nonzero(): [MQTT] Last error reported from esp-tls: 0x8008
E (333191) MQTT_CLIENT: mqtt_process_receive: mqtt_message_receive() returned -1解决方案
0x8008 表示 ESP_ERR_ESP_TLS_TCP_CLOSED_FIN。换句话说,TCP 连接已成功建立但意外地,连接已被服务器关闭。
这通常由服务器软件崩溃或以某种方式重启引起。当服务器进程终止时,操作系统将清理它并关闭所有连接。
要调试此问题,首先检查服务器消息和/或系统日志的日志以检查意外崩溃。如果这没有帮助,有时抓包 ESP32 和服务器之间的通信会很有用。你也可以编写一个软件脚本与服务器进行与 ESP32 相同的通信。这通常可以让你比在微控制器上更容易地尝试更改并使用调试器观察发生的情况。
Check out similar posts by category:
C/C++, Embedded, ESP8266/ESP32, Networking
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow