我目前正在寻找一种方法来撤销连接到Azure Iot Hub的设备的设备会话。
例如,当设备使用证书连接并且证书过期时,……
您可以禁用设备以连接到IoT中心。我只是尝试使用主动发送数据的模拟设备(使用.NET SDK)。在我将开关转到Disabled后,几秒钟后连接断开。这是使用设备密钥,而不是证书,但我认为这可能也有效。
Azure IoT Hub中没有诸如REST API来断开连接的设备。但是,以下变通方法可以帮助它:
基于MQTT设备协议,只有一个具有相同ID的设备可以连接到Azure IoT Hub,因此连接同一设备(模拟相同的ID)将自动断开连接的设备。此解决方法不需要更改设备代码。您可以使用诸如此类的工具对其进行测试 MQTTBox , MQTT.fx 等
此解决方法基于 调用设备方法 从设备端执行关闭设备。您可以为Azure IoT Hub后台进程创建作业以“调用设备方法”。请注意,此解决方法需要将此功能构建到设备代码中。 此外,在设备端收到的双胞胎所需的属性更改上使用通知事件可用于解决方法,以执行关闭或重新连接与Azure IoT中心的连接。
的 编辑: 强>
我建议在设备中内置一些重试策略,根据断开连接丢失,用户断开等原因,将设备重新连接到Azure IoT Hub。