作为MQTT客户机(装置)中,我使用devices/{deviceid}/messages/devicebound/#
主题接收云端至设备的消息。 该设备是我的网关有连接到它3个设备。 我想给3个不同的命令,以1个网关在3周不同的主题,如
devices/{deviceid}/messages/devicebound/device1
devices/{deviceid}/messages/devicebound/device2
devices/{deviceid}/messages/devicebound/device3
我的网关是注册在物联网枢纽和我用它在{deviceid}
。
可能吗?
根据官方公布的文件“ 使用MQTT协议的物联网中心沟通 ”,它说:
由于物联网中心不是一个通用的发布 - 订阅消息代理,它仅支持文件的主题名称和主题过滤器。
的IoT集线器提供与所述主题名称的设备/ {DEVICE_ID}消息/消息/ devicebound /或设备/ {DEVICE_ID} /消息/ devicebound / {property_bag}是否有任何消息属性。
下面是一个使用系统属性“MESSAGEID”作为过滤的溶液。 所以,你的三个主题:
devices/{deviceid}/messages/devicebound/device1
devices/{deviceid}/messages/devicebound/device2
devices/{deviceid}/messages/devicebound/device3
应该是这样的:
devices/{deviceid}/messages/devicebound/%24.mid=device1&%24.to=%2Fdevices%2Ftest1%2Fmessages%2FdeviceBound&iothub-ack=full
devices/{deviceid}/messages/devicebound/%24.mid=device2&%24.to=%2Fdevices%2Ftest1%2Fmessages%2FdeviceBound&iothub-ack=full
devices/{deviceid}/messages/devicebound/%24.mid=device3&%24.to=%2Fdevices%2Ftest1%2Fmessages%2FdeviceBound&iothub-ack=full
这是测试:
从天蓝设备浏览器发送C2D消息:
从MQTTBox接收C2D消息:
文章来源: Azure IoT Hub - Send message (C2D) to one device on 2 topics instead of devicebound/#