单个物联网设备上的多个MQTT连接

时间:2018-11-30 22:13:53

标签: azure-iot-hub azure-iot-sdk

使用azure-iot-sdk for python,我有一个程序可以打开与IoT中心的连接,并使用MQTT协议持续侦听直接方法。这正在按预期方式工作。我有第二个python程序,每小时从cron调用一次,该程序连接到IoT中心并为我的设备更新设备twin。再次使用MQTT。一切正常。

但是,我在文档中发现设备一次只能建立一个MQTT连接,而第二个将掉线,导致第一个掉线。我没看到这个,但是我正在做的事情不受支持吗?

我应该有一个程序同时执行任务和共享一个连接吗?

1 个答案:

答案 0 :(得分:0)

是的,您不能有多个连接到IoTHub的具有相同设备ID的连接。最终,您将有不一致的行为,并且这种情况不受支持。您应该使用具有唯一设备ID的单个程序来完成这两项任务。

根据情况,您可能需要考虑使用iothubowner连接字符串来执行服务端操作,例如管理IoT中心,以及可选地向IoT设备发送消息,安排作业,调用直接方法或发送所需的属性更新,或者模块。