微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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接收这些消息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。