mqtt的topic的设计和命名规则

1.topic的命名方式举例

topic可以划分为多个层级,不同层次主要采用“/”分隔,相互之间的关系是层层递进。
比如:“/地球/中国/山东省/临沂市/兰山区/特定的电话号”

“/”即主题层级分隔符。(在第2部分会讲解不同符号作用)

以这个Topic为例讲解:“/serve/temperature/12345678”

此Topic分为了3层主题,第一层表明这是服务器,第二场表明数据是温度,第三层表明这是哪个设备。
第三层为什么是数字,这里是假设的IMEI码,用来找到特定的某台设备。
此处插播:
什么是IMEI码?
在嵌入式开发和物联网中,4G模块,2G模块,NB模块等,都会有一个唯一的IMEI码。这就是国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的序列号,

2.topic命名常见方式

1.主题层级分隔符—“/”:

用于分割主题层级,/分割后的主题,这是消息主题层级设计中很重要的符号

2.单层通配符—-“+”:

单层通配符只能匹配一层主题。e.g: aaaa/+ 可以匹配 aaaa/bbbb ,但是不能匹配aaaa/bbbb/cccc。 单独的+号可以匹配单层的所有推送

3.多层通配符—-“#”:

#:多层通配符,多层通配符可以匹配于多层主题。比如: aaaa/# 不但可以匹配aaaa/bbbb,还可以匹配aaaa/bbbb/cccc/dddd。 也就是说,多层通配符可以匹配符合通配符之前主题层级的所有子集主题。单独的#匹配所有的消息主题.

4.通配符 —-“$”:

通配符“$”表示匹配一个字符,只要不是放在主题的最开头,即:

x x / xx/ xx/xx/xx$

其它情况下都表示匹配一个字符。

如果客户端想同时接受以 “SYS/”开头主题的消息和不以 开头主题的消息, 它需要同时订阅 “#” 和 ““$SYS/#”。
引用自

https://baijiahao.baidu.com/s?id=1658785926054211708&wfr=spider&for=pc

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值