设备每 65 分钟重新连接到 Azure IoT 中心
Devices reconnect to Azure IoT Hub every 65 minutes
我们有设备通过 MQTT(默认设置)连接到 IoT Hub,并且它们都精确地每 65 分钟 重新连接一次(到毫秒)。
设备应用详细信息:
- .net 核心 2.1
- 图书馆:
Microsoft.Azure.Devices v1.17.0
Microsoft.Azure.Devices.Client v1.18.0
- 连接类型:MQTT
- OS:Windows 10 个物联网企业(戴尔工业 PC),Raspbian(Raspberry PI 3)和 Windows 物联网核心(Raspberry PI 3) - 所有行为都一样。
我们正在使用物联网中心的免费version/tier。
重新连接发生时:
DeviceClient StatusChangesHandler
报告连接状态:Disconnected_Retrying
和原因:No_Network
- IoT 中心诊断报告
deviceDisconnect
=> 404104 DeviceConnectionClosedRemotely
deviceConnect
=> 401003 IoTHubUnauthorized
deviceConnect
=> 没有错误,成功
DeviceClient StatusChangesHandler
报告连接状态:Connected
和原因:Connection_Ok
这对我们的操作来说不是一个非常关键的问题,因为在这个阶段它是一个 PoC,每次重新连接大约需要 2 秒,但是,我们想在我们上线之前知道这种行为的根本原因。
DeviceClient.RetryPolicy = RetryPolicyType.No_Retry
已在 Microsoft.Azure.Devices.Client v1.18.0 中弃用。请尝试使用 Microsoft.Azure.Devices.Client.SetRetryPolicy(IRetryPolicy retryPolicy) 代替,如以下代码。
deviceClient.SetRetryPolicy(new NoRetry());
您是否使用 SAS 令牌对 IoT 中心进行身份验证?如果是这样,您很可能会在刷新令牌时遇到断开连接的情况。这由 SDK 处理,在这种情况下,SDK 使用重试策略重新连接。如果未明确设置重试策略,它将使用默认值(4 分钟超时的指数退避)。如果您将默认设置为不重试,则无法在不受干扰的情况下重新建立连接。
我们有设备通过 MQTT(默认设置)连接到 IoT Hub,并且它们都精确地每 65 分钟 重新连接一次(到毫秒)。
设备应用详细信息:
- .net 核心 2.1
- 图书馆:
Microsoft.Azure.Devices v1.17.0
Microsoft.Azure.Devices.Client v1.18.0
- 连接类型:MQTT
- OS:Windows 10 个物联网企业(戴尔工业 PC),Raspbian(Raspberry PI 3)和 Windows 物联网核心(Raspberry PI 3) - 所有行为都一样。
我们正在使用物联网中心的免费version/tier。
重新连接发生时:
DeviceClient StatusChangesHandler
报告连接状态:Disconnected_Retrying
和原因:No_Network
- IoT 中心诊断报告
deviceDisconnect
=>404104 DeviceConnectionClosedRemotely
deviceConnect
=>401003 IoTHubUnauthorized
deviceConnect
=> 没有错误,成功
DeviceClient StatusChangesHandler
报告连接状态:Connected
和原因:Connection_Ok
这对我们的操作来说不是一个非常关键的问题,因为在这个阶段它是一个 PoC,每次重新连接大约需要 2 秒,但是,我们想在我们上线之前知道这种行为的根本原因。
DeviceClient.RetryPolicy = RetryPolicyType.No_Retry
已在 Microsoft.Azure.Devices.Client v1.18.0 中弃用。请尝试使用 Microsoft.Azure.Devices.Client.SetRetryPolicy(IRetryPolicy retryPolicy) 代替,如以下代码。
deviceClient.SetRetryPolicy(new NoRetry());
您是否使用 SAS 令牌对 IoT 中心进行身份验证?如果是这样,您很可能会在刷新令牌时遇到断开连接的情况。这由 SDK 处理,在这种情况下,SDK 使用重试策略重新连接。如果未明确设置重试策略,它将使用默认值(4 分钟超时的指数退避)。如果您将默认设置为不重试,则无法在不受干扰的情况下重新建立连接。