主题在MQTT协议中是一个很重要的概念
主题基本形式
主题就是一个字符串,其特征如下:
1、区分大小写
2、可以使用空格,但是尽量不要使用
3、不要使用中文主题,使用ASCII字符作为MQTT主题
主题分级
为了更好的对主题进行管理和分类,MQTT协议支持主题分级,对主题进行分级处理,各个级别之间使用“/”符号进行分隔。
例如:
"home/sensor/led/brightness"
上面示例是一个四级主题
第1级:home
第2级:sensor
第3级:led
第4级:brightness
注:主题名不要使用“/”开头
主题通配符
单级通配符:+
单级通配符可以匹配任意一个主题级别,例如
“home/sensor/+/status”
可以匹配到
“home/sensor/led/ststus”
“home/sensor/key/ststus”
“home/sensor/beep/ststus”
……
不能匹配到
"dt/sensor/led/status"
多级通配符:#
多级通配符可以匹配任意数量个主题级别,例如
"home/sensor/#"
可以匹配到
"home/sensor/led"
"home/sensor/key"
"home/sensor/beeper"
"home/sensor/led/status"
"home/sensor/led/brightness"
"home/sensor/key/status"
"home/sensor/beeper/status"
不能匹配到
"home/kash/led
"dt/sensor/led"
"dt/kash/led"
主题注意事项
-
以$开头的主题
以$开头的主题是MQTT服务端系统保留的特殊主题,客户端不可随意订阅或向其发布信息。 -
不要使用“/”作为主题开头
-
主题中不要使用空格
-
主题简洁明了
-
主题中尽量使用ASCII字符