阅读以下MQTT接入文档前,请务必先了解
MQTT
协议的相关概念,特别是该协议topic
以及+
和#
两个通配符的使用方法
在MQTT中,订阅者可以使用通配符来订阅多个主题,而不需要一个一个地指定。MQTT支持两种通配符,分别是“+”和“#”:
+
通配符只能匹配一个层级,可以出现在除了主题的最后一个层级之外的任意层级位置,代表一个单词。例如,主题home/livingroom/temperature
可以使用home/+/temperature
来订阅,匹配的主题包括home/kitchen/temperature
、home/bedroom/temperature
等。
#
通配符可以匹配多个层级,但必须出现在主题的最后一个层级,代表零个或多个单词。例如,主题home/livingroom/temperature
可以使用home/livingroom/#
来订阅,匹配的主题包括home/livingroom/temperature
、home/livingroom/humidity
、home/livingroom/temperature/setting
等。
需要注意的是,使用通配符会增加网络传输的负担和处理开销,因此在设计MQTT主题结构时需要慎重考虑实际数据需求来使用通配符。
本平台的设备将数据上传到服务端后,经过解密和处理的实时数据通过MQTT
协议的方式推送到MQTT
服务器,用户可根据自己的需要通过topic
规则接收数据。
表哥平台mqtt topic规则 : manage-iot-hub/{companyId}/{applicationId}/{productKey}/{eventId}/{dataTypeId}/{deviceName}
companyId
代表公司ID,applicationId
代表应用ID,productKey
代表产品KEY,eventId
代表数据类型,dataTypeId
代表数据类型,deviceName
代表设备名。这些参数可从HTTP接口中获取到,详见API文档。
举例:
manage-iot-hub/1/2/+/1/160/#
这个topic代表订阅公司id为1,应用id为2下所有设备的160数据事件。manage-iot-hub/1/#
这个topic代表订阅公司id为1下所有数据。manage-iot-hub/1/2/hwhRwn5ICvA/1/160/#
这个topic代表订阅公司id为1,应用id为2,产品密钥为hwhRwn5ICvA
下所有设备的160数据事件。manage-iot-hub/1/2/hwhRwn5ICvA/1/160/869915047668958
这个topic代表订阅公司id为1,应用id为2,产品密钥为hwhRwn5ICvA
, 设备名为869915047668958
的160数据事件。manage-iot-hub/1/2/hwhRwn5ICvA/2/#
这个topic代表订阅公司id为1,应用id为2,产品密钥为hwhRwn5ICvA
下所有设备的状态事件,例如上下线,注册删除等。使用表哥系统分配的账号和密码登录系统。
公司id在通讯管理中类似[manage-iot-hub/1/#]的公司级别topic,这个1代表公司id。
MQTT TOPIC
代表应用级别topic
MQTT TOPIC
代表产品级别topic