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

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

被折叠的 条评论
为什么被折叠?



