2017-04-20 110 views
1

目标:将消息发送到通过MQTT WebSocket连接的一组Azure IoT Hub设备。我可以向通过MQTT WebSocket连接的一组Azure IoT Hub设备发送消息吗?

初步设想:拥有一批物联网集线器设备(X组)的订阅信息与话题X.

问题:

Communicate with your IoT hub using the MQTT protocol文档,我没有看到方式订阅设备到其他主题。我只看到订购设备特定端点devices/{device_id}/messages/devicebound/#的示例。

页面上继续说“IoT Hub不是通用的pub-sub消息代理,它只支持记录的主题名称和主题筛选器”。我认为,这些议题都是

  • devices/{device_id}/messages/devicebound/
  • devices/{device_id}/messages/devicebound/#

我的结论:我不能有一批物联网集线器设备(X组)的订阅与主题X消息。

问题:

  1. 我的结论是否正确?
  2. 如果我的结论是正确的,是否有另一种方式可以将消息发送到通过MQTT WebSocket连接的一组Azure IoT Hub设备?

回答

1

您的结论是正确的。 Azure IoT Hub本身不是MQTT经纪人。 如果要将消息发送到连接到Azure IoT Hub的一组设备(与连接的协议无关),则需要查看物联网集线器的其中一个Cloud 2 Device features。 根据您的方案,您可以使用以下方法之一:云2设备消息,双胞胎或方法。 IoT Hub在后端提供API(可与服务客户端SDK一起使用),允许使用任何这些API。

C2D消息用于将原始数据发送到设备,这意味着您可以在云和设备之间实现自己的“协议”。如果设备未连接,则物联网集线器将保留它们(在设置中定义的特定时间),因此C2D消息也在云中保留。

Device Twins允许将设备的配置与Cloud同步,并允许在设备上进行批处理操作(当然您希望仔细观察一下)。

设备直接方法允许从云端调用在设备上运行的函数,并且像Twins支持批处理操作。

+0

有没有计划让Azure IoT Hub成为通用MQTT pub-sub消息代理?我们在AWS中拥有完全无服务器的体系结构(使用AWS IoT Gateway作为MQTT代理),并且我们试图在Azure中进行复制。 – mrh042

相关问题