Azure IoT Hub 是设备和云 (IoT Stack) 之间的双向集成网关。其主要目标是通过默认(内置)或自定义端点将设备遥测数据快速摄取到云流管道。
基本上,Azure IoT 中心有两种端点,例如面向设备的端点和面向服务的端点。
有关这些端点的更多详细信息是here。
在内部,Azure IoT Hub 不是面向总线的,它不是通用 MQTT 代理,也不是通用通信代理,它是具有点对点星型拓扑通信的集成网关,例如设备对-云 (D2C) 和云到设备 (C2D) 消息传递。没有直接的设备到设备消息传递。
C2D 消息传递有一些限制,请参阅IoT Hub quotas and throttling。
C2D 消息传递可以使用设备孪生功能以异步或同步方式进行。
基本上,C2D 消息传递是基于点对点星型通信,换句话说,您不能向设备发送多播广播消息。在这种情况下,推荐的方式是创建一个作业,用于将消息逐个发送到设备。
通过 Azure IoT 中心在设备上调用直接方法只能通过使用 Http 协议的面向服务的端点。在另一端,例如面向设备的端点,它只能由具有面向连接的协议(例如 MQTT 或 AMQP)的设备使用。
面向设备的端点支持 MQTT v3.1.1 通信协议,详情请参阅here。
使用 MQTTBox Client、https://iotdevtool.com、Azure IoT Hub Tester 等第三方工具可以使用 Azure IoT Hub 评估 MQTT 设备的行为。
以下屏幕 sn-ps 显示在 MQTT 设备上调用直接方法。请注意 Azure IoT Hub 测试器使用直接 MQTT 协议和 Azure IoT Hub。
第 1 步:在面向服务的端点 (Http) 上调用直接方法。请注意,url 地址有一个目标设备 ID(在此测试 Device10 中)。
第 2 步:设备(Device10)接收到直接方法
第 3 步:设备 (Device10) 将响应发送回调用者
第 4 步:调用者在超时限制内收到来自 Device10 的响应