【问题标题】:ESPAsyncWebserver blocking Azure IoTHub MQTT connectionESPAsyncWebserver 阻止 Azure IoTHub MQTT 连接
【发布时间】:2020-02-24 15:07:57
【问题描述】:

我正在尝试在我的 ESP8266 设备上建立与 IoTHub 的连接。该示例本身就可以正常工作。当我尝试包含 AsyncWebserver 来托管 HTML 页面时,我的问题就开始了。仅仅声明 server 变量似乎破坏了 IoTHub 建立套接字连接的能力。我相信要复制我的问题,您可以简单地导入 ESPAsyncWebserver 并在此链接中提供的示例 IoTHub 连接中声明一个 AsyncWebserver。

https://github.com/Azure-Samples/iot-hub-feather-huzzah-client-app/tree/master/app

我的串行输出如下所示:

Sending message: {"deviceId":"Esp-home","messageId":31,"temperature":29,"humidity":36}.
IoTHubClient accepted the message for delivery.
dowork TLSIO_STATE_OPENING_WAITING_DNS
dowork TLSIO_STATE_OPENING_WAITING_SOCKET
dowork TLSIO_STATE_OPENING_WAITING_SSL
Error opening socket 0
Calling error callback
Error: failure opening connection to endpoint
tlsio_arduino_destroy called while not in TLSIO_STATE_CLOSED.

我正在使用 platformIO,并将所有函数复制到一个 C++ 文件中,但除此之外我什么也没做。如果有人能对这个问题有所了解,我将不胜感激。

【问题讨论】:

    标签: azure-iot-hub arduino-esp8266


    【解决方案1】:

    我遇到了完全相同的错误。我追踪到 ESP8266WiFi 库中的内存不足故障。当堆上只有 12K 可用时,函数 WiFiClientSecure::_connectSSL 尝试分配 16K 输入缓冲区。我当然希望开发东西的人可以返回比“假”或 0 更全面的东西。无论如何,ESP8266 的内存似乎太有限了,所以我要转向 ESP32。我猜8266是可以的,只要你不需要使用SSL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多