Cloud-to-device Azure IoT REST API

我研究了使用Azure REST API将数据从设备发送到云端的方法。它可以无缝地工作而没有任何问题。但我在使用"Azure IoT Hub REST Apis"将云端到设备的消息发送到Arduino板时没有找到好的文章。请问有人能提供一些建议吗?

点赞
用户4989676
用户4989676

根据官方文档 使用 IoT Hub 发送和接收消息 ,并且在审查 Azure IoT Hub 发送云到设备消息的多种语言源代码后,没有 REST API 支持发送云到设备消息。为了将应用程序的 c2d 消息发送到 Azure IoT Hub,建议使用 AMQP 协议且最简单的方式是使用 Azure IoT Hub SDK。您可以参考下面的 通信协议 部分。

enter image description here

但是,如果您想要从 Arduino 接收 c2d 消息,可以参考下面的 云到设备消息 部分以及在 Arduino 上使用 REST API 接收设备绑定通知

2017-03-22 09:10:15
用户2956469
用户2956469

正如彼得·潘所说,“目前没有适用于发送C2D消息的RESTful API”。然而,你仍有其他选择。

  1. 使用Azure Function App。你可以创建一个HTTP触发的Azure Function App作为RESTful代理,并在Azure Function App上运行IoT Hub SDK来发送C2D消息。

  2. 如果你不能使用5671端口连接到IoT Hub,则可以使用基于443端口的WebSockets上的AMQP。我们开发了一个基于Rhea的基于Web的IoT Hub开发工具,你可以参考我们的代码。

2017-03-24 08:22:54
用户5892720
用户5892720

您也可以像 Azure 门户一样发送请求。所有来自 AZ 门户的 C2D 都通过此 Endpoint https://main.iothub.ext.azure.com/api/Service/SendMessage/ 发送,负载是一个看起来像这样的 json:

{
  "hostName": "iothub-hostname",
  "owner": "twinUpdate",
  "key": "key for the iothub",
  "deviceID": "your device on that hub",
  "body": "{\"test\": \"This is a test over postman\"}",
  "properties": "[]"
}

请记住,您需要添加一个带有有效 Bearer Token 的授权标头。您可以在登录到 AZ 门户时获取此信息。

2018-11-30 15:30:11