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

本文深入探讨MQTT的主题(Topics)定义和订阅机制。主题被比喻为类似Linux文件系统的字符串,具有多层结构,如“earth/antarctica/elderthings/shoggoth”。订阅者可以使用通配符"+"和"#"匹配不同主题。"+"匹配单层,"#"匹配单层或多层(仅限末尾)。文中举例说明了不同订阅模式下接收信息的情况,并提及"$SYS"特殊主题用于系统统计。了解MQTT协议的这一核心概念对于物联网开发至关重要。

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 ”的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值