【问题标题】:iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection. mqtt_client timed out waiting for CONNACKiothub_client/src/iothubtransport_mqtt_common.c 函数:初始化连接。 mqtt_client 等待 CONNACK 超时
【发布时间】:2018-12-21 06:45:01
【问题描述】:

操作系统:Linux SDK版本:2018-12-13 问题描述:

iothub_ll_telemetry_sample.c 当我将 60000 放入函数 ThreadAPI_Sleep(60000) 运行良好但尝试 120000 时面临超时错误。

cd ~/azure-iot-sdk-c/cmake/iothub_client/samples/iothub_ll_telemetry_sample $ ./iothub_ll_telemetry_sample

问题的控制台日志:

创建 IoTHub 设备句柄 向 IoTHub 发送消息 1 向 IoTHub 发送消息 2 错误:时间:2018 年 12 月 21 日星期五 11:12:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时 向 IoTHub 发送消息 3 向 IoTHub 发送消息 4 错误:时间:2018 年 12 月 21 日星期五 11:16:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时 向 IoTHub 发送消息 5 错误:时间:2018 年 12 月 21 日星期五 11:18:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时 错误:时间:2018 年 12 月 21 日星期五 11:20:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时 错误:时间:2018 年 12 月 21 日星期五 11:22:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时 错误:时间:2018 年 12 月 21 日星期五 11:24:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时 错误:时间:2018 年 12 月 21 日星期五 11:26:19 文件:/home/test/azure-iot-sdk-c/iothub_client/src/iothubtransport_mqtt_common.c Func:InitializeConnection Line:2229 mqtt_client 等待 CONNACK 超时

注意: 在以前的版本中,您说它已解决,但在这里它对我不起作用。请解释一下问题出在哪里。

【问题讨论】:

    标签: azure-iot-sdk


    【解决方案1】:

    SDK 函数的“LL”版本是单线程的。修改代码休眠两分钟后,SDK 无法服务套接字,因此无法及时收到 CONNACK 数据包。服务套接字的函数调用是IoTHubDeviceClient_LL_DoWork。此函数应至少每 100 毫秒调用一次,最好比这更快。如果您只想每两分钟发送一次消息,那么您有责任跟踪时间并在自上次发送消息后的两分钟后发送您的消息。你不能简单地让线程休眠两分钟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 2013-09-07
      • 2021-08-06
      • 1970-01-01
      • 2013-11-29
      相关资源
      最近更新 更多