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

时间:2017-04-20 16:44:20

标签: mqtt azure-iot-hub

目标:向通过MQTT WebSocket连接的一组Azure IoT Hub设备发送消息。

初步想法:让一组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/#

我的结论:我不能让一组IoT Hub设备(组X)订阅包含主题X的邮件。

问题:

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

1 个答案:

答案 0 :(得分:1)

你的结论是正确的。 Azure IoT Hub本身不是MQTT代理。 如果要将消息发送到连接到Azure IoT Hub的一组设备(与其连接的协议无关),则需要查看Cloud 2 Device features IoT Hub之一。 根据您的方案,您可以使用以下方法之一:云2设备消息,双胞胎或方法。 IoT Hub在后端公开API(很容易与Service Client SDK一起使用),允许使用其中任何一个。

C2D消息用于将原始数据发送到设备,这意味着您在云和设备之间实现自己的“协议”。 C2D消息在云中也是持久的,因为如果设备未连接,IoT Hub将保留它们(在设置中定义的特定时间)。

设备双胞胎允许将设备的配置与云同步,并允许在设备上进行批量操作(当然,您希望仔细查看)。

Device Direct Methods允许从云端调用在设备上运行的功能,并且Twins支持批量操作。