Azure Iot Hub:撤消设备会话

问题描述 投票:0回答:2

我目前正在寻找一种方法来撤销连接到Azure Iot Hub的设备的设备会话。

例如,当设备使用证书连接并且证书过期时,设备仍然可以在具有有效令牌的情况下发送和接收数据。

我们的情况是,如果设备出于任何原因超载我们的Io​​T Hub,我们希望能够立即撤销连接。我们希望能够撤销此类令牌,​​以便立即断开某个设备。

甚至可以这样做吗?如果没有,那有解决方法吗?

azure iot azure-iot-hub
2个回答
1
投票

您可以禁用设备以连接到IoT中心。我只是尝试使用主动发送数据的模拟设备(使用.NET SDK)。在我将开关转到Disabled后,几秒钟后连接断开。这是使用设备密钥,而不是证书,但我认为这可能也有效。

enter image description here


0
投票

Azure IoT Hub中没有诸如REST API来断开连接的设备。但是,以下变通方法可以帮助它:

  1. 基于MQTT设备协议,只有一个具有相同ID的设备可以连接到Azure IoT Hub,因此连接同一设备(模拟相同的ID)将自动断开连接的设备。此解决方法不需要更改设备代码。您可以使用MQTTBox,MQTT.fx等工具对其进行测试。
  2. 此解决方法基于invoking a device method执行从设备端关闭设备。您可以为Azure IoT Hub后台进程创建作业以“调用设备方法”。请注意,此解决方法需要将此功能构建到设备代码中。此外,在设备端收到的双胞胎所需的属性更改上使用通知事件可用于解决方法,以执行与Azure IoT中心的关闭或重新连接连接。

编辑:

  1. 与@silent一样,将状态更改为“禁用”,设备将自动与Azure IoT Hub断开连接。您可以使用REST API来更改此状态。

我建议在设备中内置一些重试策略,根据断开连接丢失,用户断开等原因,将设备重新连接到Azure IoT Hub。

© www.soinside.com 2019 - 2024. All rights reserved.