ESP32 AWS IoT 传输状态=-1

ESP32 AWS IoT transportStatus=-1

我正在关注将 ESP32 连接到 AWS IoT 影子的 espressif 文档。我正在使用示例 github.com/espressif/esp-aws-iot 进行影子 mqtt 同步。我在配置中设置了所有内容,但是当我在 ESP32 上 运行 时,出现以下错误:

--- until here everything runs fine ---
--- mqtt connects to aws and it's success ---
--- and then ---
I coreMQTT: SUBSCRIBE topic $aws/things/MY_DEVICE_NAME/shadow/name/MY_SHADOW_NAME/delete/accepted to broker.
E coreMQTT: A single byte was not read from the transport: transportStatus=-1.
E coreMQTT: Receiving incoming packet length failed. Status=MQTTRecvFailed
E coreMQTT: Exiting process loop due to failure: ErrorStatus=MQTTRecvFailed
E coreMQTT: MQTT_ProcessLoop returned with status = 4.

我尝试通过配置将 MQTT 数据包的网络缓冲区增加到 4096,但这没有帮助。有人知道问题出在哪里吗?

我发现了错误。我为该设备创建的策略有些混乱。我仍然不能 100% 确定到底是什么问题,但是当我删除了在实际影子操作开始之前首先尝试删除影子的代码时,该示例运行良好。我现在可以pub/sub我的影子了。

遇到相同问题的朋友,请评论第 691-746 行的代码(删除部分)。