如何解决ESP8266无法通过AWS IoT核心版通过MQTT接收消息
我每PubSubClient使用this example连接到AWS IoT。具体来说,我正在尝试使用AWS IoT Fleet Provisioning,它涉及订阅和发布一些特殊的$aws/
主题。
连接正确建立,并且CloudWatch日志显示成功的Connect
,Subscribe
,Publish-In
和Publish-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接收这些消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。