MQTT主题的通配符

做二次开发时,开发者可能会面临一个窘境:

设备百千万,识别怎么办?
心里很烦乱,后端直哭惨。

所以,为了区分不同的设备,通常建议开发者对MQTT的发布和订阅的主题做细分,以做到对设备的精确控制。

###区分设备


嵌入式开发时,开发者应该将设备的主题规划如下:

订阅:/sys/device/8685754894158765/ctrl上报:/sys/device/8685754894158765/reply

其中8685754894158765就是设备的IMEI。如此一来,只要服务端向某个设备的ctrl主题发布数据,设备收到后即可做出相应响应;设备也可以根据自己的逻辑,及时上报数据到reply主题。

如此一来,每个设备的逻辑很清晰了,但是服务端端呢?难道要去订阅每一个设备的不同主题吗?实际上并不复杂哦,使用MQTT的通配符就能轻松解决。

##通配符

###主题层级

譬如在上文的例子中:

订阅:/sys/device/8685754894158765/ctrl上报:/sys/device/8685754894158765/reply

每一个 / 都是分隔符,用来分割主题的每一层级。以订阅的主题为例,它就被分割成了4个层级:

/sys/device/8685754894158765/ctrl层级1. sys层级2. device层级3. 8685754894158765层级4. ctrl

不要小看层级哦,区分设备,使用通配符,全靠他们了。

###多层通配符#

# 是可以匹配主题中任意层级次数的通配符。
比如,如果你订阅了 /sys/device/#,那么,你可以接收到以下这些主题的消息:

/sys/device/sys/device/8685754894158765/reply/sys/device/8685754894158766/reply/sys/device/8685754894158767/reply/sys/device/abce/efg/h/ijkl...

通过示例我们可以看出,#可以匹配大于等于0的层级。
服务端使用通配符 # 订阅主题。设备上报数据,服务端收到数据后,再根据设备的上报的 真实主题payload 进行处理。

###单层通配符+

+ 只可匹配主题的某一层级。

比如,如果你订阅了 /sys/device/+,那么,你可以接收到以下这些主题的消息:

/sys/device/8685754894158765/sys/device/8685754894158766/sys/device/8685754894158767/sys/device/abce...

但是不能收到如下主题的消息:

/sys/device/8685754894158767/reply/sys/device/abce/efg/h/ijkl/sys/device

因为他们都超过了 + 1层级的要求。需要注意的是,/sys/device因为是0层级,所以也不符合要求,无法收到数据。

###延伸用法

  1. 如果开发者想要订阅所有主题,那么连接到服务器后,订阅 # 就可以啦;
  2. /syssys 是两个不同的主题。所以,如果开发者想要使用 + 订阅 /sys,那么要写成这样:+/+
  3. 小心使用 #,以免造成不可预估的后果;
  4. 主题中的其他字符,如 *$ 等,均当作普通字符串处理,无其他特殊含义。
(0)

相关推荐

  • 说到做到!

    之前有位读者给我留言说想要了解一下什么是 MQTT 协议,顺便还把我夸了一把,有点不好意思啦. 那么读者的要求必须要满足啊,所以现在 @一下这位小姐姐,来听课啦!什么是 MQTT 协议MQTT 协议的 ...

  • 如何用ESP8266构建一个JSON树,并用JSON函数解析JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全 独立于语言的文本格式,但是也使用了类似于C语言家 ...

  • 如何使用通配符进行筛选?

    版权所有 转载须经Excel技巧网/Office学吧允许 [ Excel ]:快速美化表格

  • 消息推送标准协议:MQTT

    随着物联网(Internet of Things,IoT)的兴起,机器之间(Machine-to-Machine,M2M)的大规模信息沟通成为重要的课堂,之前HTTP的请求/回答(Request/Re ...

  • 主题乐园环境的设计原则应把握哪些方面重点

    主题乐园作为一种人工旅游环境,与人的游乐行为密切联系.从游乐行为的无规定性.不受约束性特征出发,主题乐园环境的设计原则应从以下几个方面重点把握: 主题乐园环境的设计原则应把握哪些方面重点 1.多样性和 ...

  • 咱们村母亲节主题/母亲的春天/唐剑雨

    责任编辑亚静 母亲的春天 文/唐剑雨 不管过去了多少年,母亲依然盼望着春天,这种盼望是与热爱联系在一起的.在她的眼里,春天就是一场浩浩荡荡的启程,也是一轮蓬蓬勃勃的生长. 记得小时候的春天里,野菜开始 ...

  • R语言社区主题检测算法应用案例

    原文链接:http://tecdat.cn/?p=5658 使用R检测相关主题的社区 创建主题网络 我通过分析抽象文本和共同作者社交网络来研究社会科学.计算机和信息学方面的出版物. 我遇到的一个问题是 ...

  • SunnyUI 学习1.2——主题

    SunnyUI 学习1.2--主题 炎黄子孙__ 2021-01-01 15:09:01  434  收藏 3 分类专栏: SunnyUI C# 文章标签: c# winform 版权 1 简介 主题 ...

  • 咱们村母亲节主题‖爱要大声说出来/刘艳芳

    责任编辑亚静 爱要大声说出来 文/刘艳芳 我总以为表达爱的最高境界是默默在心里,用行动慢慢地去温暖.去融化是高贵的情感出口,如果热爱,需要像红酒一样,去慢慢的品.去赏!爱是细水长流!只能意会,不能言传 ...

  • 【名师名家名人坛】母亲节主题诗词合集(张秀祥、吴琳玲)

    鹧鸪天 母亲节忆母 文/张秀祥(山东) 奉献终生养育恩,吃糠咽菜不嫌贫. 相夫教子竭全力,孝道尊长母爱亲. 家和睦,惠乡邻.仁慈济世古传今. 魂萦梦里常犹在,美德英名代代吟. 作者简介:张秀祥,网名老 ...

  • 列出想要深入学习的主题

    各位的梦想是什么? 善良的目标具有一种吸引其他善良人才的力量. 当然,如果只为了学习,只要树立一个如爱默生在诗中所说的那样的,能让这个世界变得更好或者能让一个人变得幸福的目标,这就足够了. 不过,目标 ...

  • 【香港国际名联】知名诗人母亲节主题诗词合集(本期作者:赵银莲、易秋良​、叶虻)

    知名诗人母亲节主题诗词合集   本期作者(排名不分先后):赵银莲.易秋良.叶虻 (图片来自网络) 赵银莲(修弦) 有关母亲的诗词四首 一.卜算子.母亲 词/赵银莲 风来一身新,云起三思早. 一路风云不 ...

  • excel中通配符和占位符分别是什么?都有哪些用法?

    在excel中的通配符主要有两种,分别是星号*和问号?,这两个通配符可以替代表格中的字符,包括汉字.数字.字母.符号等.区别就是问号代替一个字符,星号代替不定数量的字符.比如在多个单元格中查找疏木ex ...