用于发布和订阅自定义主题的 Azure 服务与 AWS IoT 中提供的相同

Azure Service to Publish and Subscribe on custom topic same as available in AWS IoT

我正在开发一个软件,我需要将 JSON 有效载荷发送到范围广泛的客户端。这里客户端是windows台PC,我的软件是运行。在某些情况下,我需要在客户端触发一些动作。

为了实现这一点,我使用了 AWS IoT Core,这样所有客户端都可以通过 MQTT 订阅主题来连接到该组(或者可以在 AWS IoT 上说 topic) .我将通过MQTT将JSON有效负载发布到主题。所以它会通知所有连接的客户端。这里的主题是自定义的,可以设置任意主题。而且它不要求在 AWS IoT 上创建多个设备(在 AWS 上是 Things)。刚刚在那里创建了一个东西,导出了它的证书并在所有客户端上使用相同的证书。一切正常。

但现在我想切换到 Azure。我检查了 Azure IoT 中心。我在 Hub 中创建了一个 Hub 和一个设备。我能够向设备发送消息。但是无法在自定义主题上发送消息。该主题包括创建的设备 ID,因此它将针对该设备固定。但在我的场景中,我需要自定义和多个主题,并且我不想在 Azure 上创建多个设备。也不清楚我发送的消息是否通过 MQTT 协议。

对于 POC,我正在使用以下 Azure IoT Hub REST API 在设备上发送消息:

curl --location --request POST 'https://{AzureIoTHubNAme}.azure-devices.net/devices/{AzureIoTHubDevice}/messages/events/?api-version=2018-06-30' \
--header 'authorization: SAAS-TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
    "SOME-KEY": "SOME-VALUE"
}'

我如何使用 Azure 实现与 AWS IoT 相同的效果?如果有任何建议或任何其他Azure服务可以满足我的要求,请帮助我找出。

谢谢。

Azure IoT 中心不是通用的 MQTT 代理。我建议阅读以下文档:

IoT concepts and Azure IoT Hub

Reference - IoT Hub endpoints

Communicate with your IoT hub using the MQTT protocol

更新:

从通信的角度来看,Azure IoT 中心的主要重点是以安全可靠的方式将设备遥测数据从数百万同时连接的设备快速提取到流管道。

在通信对端,比如一个cloud-to-device,没有built-in多播(广播)特性,所以每个cloud-to-device 消息 必须从设备到设备单独同步处理(request-reply 模式)and/or 异步(排队模式)具有一些节流限制。

此外,没有built-in device-to-device 消息传递,这部分必须在 IoT 中心之外完成。

但是,设备模型具有 built-in 用于由设备孪生属性(报告的和所需的属性)表示的状态的通用事件驱动机制。

此外,Azure IoT 中心与 Azure 事件网格集成,查看更多详细信息here

基本上,您可以考虑以下 Azure 服务作为您的解决方案: