首页 > 解决方案 > 在 Azure IoT C SDK 出现不可恢复的错误后重试

问题描述

根据此文档,如果 SDK 检测到不可恢复的错误,它不会重新尝试重新连接。但是,在C SDK的相关文档中没有提到可恢复或不可恢复的错误(或者至少我没有在那里找到它)。

标签: azureazure-iot-hubazure-iot-sdk

解决方案


  • 当前C SDK不从重试的角度区分不可恢复和可恢复的错误。

  • 所有类型的故障都被视为可以恢复的可恢复故障,因此应修复文档以反映当前功能2018_11_20 release

  • 也就是说,SetConnectionStatusCallback将返回适当的原因代码,这有助于确定是否应允许 SDK 重试,或者应用程序是否需要建立新连接。

  • 例如,IOTHUB_CLIENT_CONNECTION_BAD_CREDENTIAL对于我的应用程序的设备客户端,我认为这是一个不可恢复的错误。

  • 你是对的 - 需要创建一个新的设备句柄才能手动重新尝试连接。这是因为所有C SDK APIs关闭此句柄以查询iothub_device_client.


推荐阅读