
本文共 977 字,大约阅读时间需要 3 分钟。
本文介绍了mosquitto如何使用通配符订阅话题和两个通配符的详细用法; 同时,介绍了如何使用桥接模式及桥接模式的意义。
1 基于通配符的topic订阅
Mosquitto支持两种通配符订阅topic:’+’ 和 ’*’。 +
用于匹配topic树的单个一级. 例如topic "a/b/c/d", 下面的订阅都可以匹配:
- a/b/c/d
- +/b/c/d
- a/+/c/d
- a/+/+/d
- +/+/+/+
但是下面的这些格式不能匹配:
- a/b/c
- b/+/c/d
- +/+/+
第二种通配符是 #
,用于匹配topic树的子序列。 例如topic "a/b/c/d", 下面的订阅格式都可以匹配:
- a/b/c/d
- #
- a/#
- a/b/#
- a/b/c/#
- +/b/c/#
$SYS 不能直接使用 "#". 如果需要订阅整个$SYS 的所有信息, 需要使用 $SYS/#.
通配符必须自己单独使用, 所以像"a/b+/c" 这样是无效的通配符用法. ‘#’只能用在订阅字符串的结尾.
2 Bridge桥接模式
Mosquitto支持通过bridge(桥接)的方式连接多台broker,其中一台broker作为bridge节点,在其配置文件(mosquitto.conf)中添加桥接选项:
connection bridge1
address 192.168.1.102:1883
topic # both 0
connection bridge2
address 192.168.1.103:1883
topic /sensor/temperature in 1
其中bridge1/bridge2是为其他broker起的名字,
address是其他broker的IP和端口,
topic指定了允许本地broker和对方broker之间传递的消息主题:
配成’#’ 表示所有主题消息都将被传递。
both/in/out是指允许的消息方向, ’in’ 是指此主题消息的转发方向只能是从对方broker到本地broker,不能从本地broker到对方broker,这时如果有客户端连接到本地broker订阅/sensor/temperature这个主题的话,发布到对方broker上的/sensor/temperature主题消息本地客户端也可以收到,反之则收不到。
转载地址:https://blog.csdn.net/lclfans1983/article/details/105740824 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关于作者
