为了账号安全,请及时绑定邮箱和手机立即绑定

Shifu教你轻松理解MQTT ——(3)主题Topics

标签:
Linux Go Docker

Shifu 能够轻松接入MQTT协议的相关设备,帮助发布者和订阅者轻松使用(Topic)。在本篇文章中,我们将不赘述MQTT中发布者、代理和订阅者之间如何使用主题(Topic),而直接讨论主题的结构以及怎样定义主题。

Shifu是由边无际Edgenesis自主研发的物联网开源开发和管理平台,开发者通过Shifu可以轻松实现连接、监控和控制任何物联网设备。


主题的定义

主题可以看作是一个字符串,其格式类似Linux文件系统的命名方式。平时,我们会从左到右、从高到低地描述一个主题的多个层次,就像下面这样:“earth/antarctica/elderthings/shoggoth”。其中,“earth”、 “antarctica”、 “elderthings”和 “shoggoth” 分别是上述主题的四个层次。

订阅

订阅者需要告诉代理自己订阅的主题是什么,而MQTT让我们可以自由地使用通配符来同时匹配多个主题。

+:单层通配符

#: 单层和多层通配符 (该通配符只能放在主题末尾)

假如我们有下面五个主题:

  • “earth/antarctica/elderthing/shoggoth”

  • “earth/antarctica/worker/shoggoth”

  • “earth/antarctica/migo”

  • “earth/antarctica/cthulhu/starspawn”

  • “yith/greatrace”

如果订阅者A订阅了 “earth/antarctica/+/shoggoth”,那么他可以收到来自 “earth/antarctica/elderthing/shoggoth ”和 “earth/antarctica/worker/shoggoth ”的信息。

如果订阅者B订阅了 “earth/antarctica/#”,那么他可以收到 “earth/antarctica ”下所有四个主题的信息。

如果订阅者C订阅了 “#”,那么他就可以收到上述五个主题的信息。

$SYS

“$SYS”是一个特殊的主题,用于代理跟踪和维护系统统计数据。除了代理,其他人都不能向该主题发布信息。

记住,确保MQTT服务与上述标准兼容,这是MQTT协议使用者的工作。默认情况下,MQTT几乎允许我们在主题字符串中使用任何东西,包括非ASCII字符。


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消