ESP8266无法通过AWS IoT核心版通过MQTT接收消息

问题描述

我每PubSubClient使用this example连接到AWS IoT。具体来说,我正在尝试使用AWS IoT Fleet Provisioning,它涉及订阅和发布一些特殊的$aws/主题。

连接正确建立,并且CloudWatch日志显示成功的ConnectSubscribePublish-InPublish-Out事件。但是,每当MCU收到一条消息时,它似乎就会断开连接。有什么作用?

解决方法

调试PubSubClient显示底层WiFiClientSecure实例由于以下错误而失去连接:

BR_ERR_TOO_LARGE: Incoming record is too large to be processed,or buffer is too small for the handshake message to send.

我收到的消息约为4 KB,因此我必须添加以下内容:

  wifi_ = new WiFiClientSecure();
  wifi_->setBufferSizes(4096,512);

从那里开始,PubSubClient有了自己的缓冲区,我也不得不提高它:

  mqtt_ = new PubSubClient(*wifi_);
  mqtt_->setBufferSize(4096);

进行这些更改使我能够成功地从AWS IoT接收这些消息。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...