【问题标题】:Azure IOT hub instantaneously disconnect when having a network change or a network disconnectionAzure IOT 集线器在发生网络更改或网络断开连接时立即断开连接
【发布时间】:2020-11-16 06:20:43
【问题描述】:

我正在使用 IOT hub c# sdk network 4.8。

似乎网络更改会立即断开 iot 集线器连接,并且在断开网络连接时,我也会收到 iot 会话的连接状态更改。

这不符合我的参数:

“AmqpMaxPoolSize”:2048, “AmqpConnectionIdleTimeout”:960, “IoTOpenTimeoutInSeconds”:900, “IoTOperationTimeoutInSeconds”:600, “IoTSendingRetryTimes”:5,

如果您对 IoT 中心会话为何会立即断开连接有更多信息或想法,请告诉我。

谢谢, 哈克

【问题讨论】:

  • as well when disconnecting the network I am also getting connection state change for the iot session. 你期待什么?
  • 我期待一个像signalR这样的管理,在后台尝试重新连接。
  • 没有尝试在幕后重新连接吗?
  • 好像没有,断开是瞬间的
  • 断开连接可能是瞬时的 - 但它会尝试在那之后立即重新连接吗?

标签: c# azure azure-iot-hub


【解决方案1】:

这是意料之中的。如果你想有任何逻辑,你可以在你的 DeviceClient 实例中注册你的事件处理程序以改变连接状态。

client.SetConnectionStatusChangesHandler((status, reason) => {
    if (status != ConnectionStatus.Connected 
         && reason == ConnectionStatusChangeReason.No_Network)
    {
        // do stuffs
    }
});

当你说

这不符合我的参数:

“AmqpMaxPoolSize”:2048,“AmqpConnectionIdleTimeout”:960, “IoTOpenTimeoutInSeconds”:900,“IoTOperationTimeoutInSeconds”:600, “IoTSendingRetryTimes”:5

这些都与断开连接无关。

IoTHub SDK 本身也有一些内置的重试机制。参考Manage connectivity and reliable messaging by using Azure IoT Hub device SDKs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多