首页 文章

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

提问于
浏览
2

Goal: 将消息发送到通过MQTT WebSocket连接的一组Azure IoT Hub设备 .

Initial Idea: 让一组IoT Hub设备(组X)订阅包含主题X的消息 .

Problem:

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

该页继续说“IoT Hub不是通用的pub-sub消息传递代理,它只支持记录的主题名称和主题过滤器 . ”我认为那些主题是

  • devices/{device_id}/messages/devicebound/

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

My Conclusion :我 can't 有一组IoT Hub设备(组X)订阅带有主题X的消息 .

Questions:

  • 我的结论是否正确?

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

1 回答

  • 1

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

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

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

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

相关问题