在一些与Azure IoT集线器一起使用的Microsoft documentation中,它提到可以在多个简单设备与本地集线器设备进行通信的情况下,在单个TLS连接(使用AMQP协议(protocol))下多路复用多个设备的通信。足以与IoT中心通信的强大功能。是否有任何示例说明如何实现这种多路复用? DeviceClient library似乎不支持此功能(尽管我可能错了)。也曾提到过针对这种情况的IoT Gateway SDK,但我还没有找到一个清晰的示例说明如何使用两者来设置多路复用。任何建议或对其他 Material 的引用将不胜感激。
最佳答案
我最近建立了这样的架构,也许它将为您提供引用。
我们的球员:
连接到现场网关(Zwave,Zigbee ...)。
边缘传感器将其遥测发送到现场网关。现场网关维护与IoT中心的连接,而IoT中心知道的唯一设备是现场网关。
在现场网关中从边缘传感器接收到的每个遥测都在消息有效负载中包含唯一的ID。
在IoT中心中接收消息时,IoT中心仅了解现场网关。但是,当消息由后端处理时,它将从有效负载中获取唯一的ID,因此知道哪个是发送遥测的正确设备。
因此,我们有多个设备都在一个连接上“骑”。
希望它会有所帮助。
关于Azure IoT中心AMQP通信复用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39258588/