mqtt Topic 规则
2024/12/10大约 1 分钟
科普视频
topic 通配符(订阅才可以使用通配符,发布不允许出现通配符)
/:用来表示层次,比如a/b,a/b/c。#:表示匹配>=0个层次,比如a/#就匹配a/,a/b,a/b/c。单独的一个#表示匹配所有。不允许a#和a/#/c。+:表示匹配一个层次,例如a/+匹配a/b,a/c,不匹配a/b/c。单独的一个+是允许的,a+不允许,也可以和多层通配符一起使用,+/tennis/#、sport/+/player1都有有效的。
共享订阅
mica-mqtt 支持两种共享订阅方式:
- 共享订阅:订阅前缀
$queue/,多个客户端订阅了$queue/topic,发布者发布到topic,则只有一个客户端会接收到消息。 - 分组订阅:订阅前缀
$share/<group>/,组客户端订阅了$share/group1/topic、$share/group2/topic..,发布者发布到topic,则消息会发布到每个 group 中,但是每个 group 中只有一个客户端会接收到消息。
注意: 如果发布的 topic 以 / 开头,例如:/topic/test,需要订阅 $share/group1//topic/test,另外 mica-mqtt 默认随机消息路由,共享订阅的多个客户端会随机收到消息。
