天青的IoT集线器 - 发送消息(C2D)在一台设备上的2个话题代替devicebound /#(A

2019-10-29 23:07发布

作为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}

可能吗?

Answer 1:

根据官方公布的文件“ 使用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/#