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

问题描述 投票:0回答:2

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

最初的想法: 让一组 IoT 中心设备(X 组)订阅主题 X 的消息。

问题:

使用 MQTT 协议与 IoT 中心通信文档中,我没有找到为设备订阅其他主题的方法。我只看到订阅设备特定端点

devices/{device_id}/messages/devicebound/#
的示例。

该页面继续显示“IoT Hub 不是通用的发布-订阅消息代理,它仅支持记录的主题名称和主题过滤器。”我认为这些主题是

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

我的结论:我无法让一组 IoT 中心设备(X 组)订阅主题 X 的消息。

问题:

  1. 我的结论正确吗?
  2. 如果我的结论是正确的,是否有其他方法可以将消息发送到一组通过 MQTT WebSocket 连接的 Azure IoT 中心设备?
mqtt azure-iot-hub
2个回答
1
投票

你的结论是正确的。 Azure IoT 中心本身并不是 MQTT 代理。 如果您想要向连接到 Azure IoT 中心的一组设备发送消息(与它们连接的协议无关),您需要研究 IoT 中心的“Cloud 2 设备功能”之一。 根据您的场景,您可以使用以下其中一项:Cloud 2 设备消息、双胞胎或方法。 IoT 中心在后端公开 API(可轻松与服务客户端 SDK 一起使用),允许使用其中任何一个。 C2D 消息用于将原始数据发送到设备,这意味着您在云和设备之间实现自己的“协议”。 C2D 消息也会持久保存在云端,因为如果设备未连接,IoT 中心将保留它们(在设置中定义的特定时间内)。

设备孪生允许将设备的配置与云同步,并允许在设备上进行批量操作(当然是您想要仔细研究的设备)。

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


0
投票
https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-jobs

var jobs = JobClient.CreateFromConnectionString(<your IoT connection params>); jobs.ScheduleDeviceMethodAsync(<your params>)

© www.soinside.com 2019 - 2024. All rights reserved.