首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MQTT:体育/比赛/比赛/(用斜杠尾随)吗?

MQTT:体育/比赛/比赛/(用斜杠尾随)吗?
EN

Stack Overflow用户
提问于 2021-04-28 17:38:50
回答 2查看 109关注 0票数 0

MQTT规范明确声明:

“体育/+”与“体育”不匹配,但与“体育/”匹配。“体育运动/#”也与单数“体育”相匹配,因为#包括父级。

但是“体育/#”也与“体育/”相匹配吗?规范使得这个问题变得非常模糊。

顺便说一下,还有谁认为允许拖尾斜线是一个非常糟糕的设计决策呢?

EN

回答 2

Stack Overflow用户

发布于 2021-04-28 19:38:24

#匹配零个或多个进一步的元素,因此对sport/#的订阅将匹配sport/

这很容易在蚊子/蚊子酒吧被检测到。

出版:

代码语言:javascript
运行
复制
$ mosquitto_pub -t "sport/" -m "foo"

订阅:

代码语言:javascript
运行
复制
$ mosquitto_sub  -v -t "sport/#"
sport/ foo
票数 1
EN

Stack Overflow用户

发布于 2021-04-29 00:15:48

是的,sport/#sport/匹配。规范的一个令人困惑的方面是,与文件和目录名称不同,主题级别可以是空字符串。

说明书上写着:

4.7.1.1主题级分隔符

正斜杠(‘/’U+002F)用于分隔主题树中的每个级别,并为主题名称提供层次结构.相邻的主题级别分隔符表示零长度的主题级别

这意味着sport/被解析为不是一个,而是两个主题级别-- sport和空字符串--因此sport/#中的#与第二个空字符串主题级别匹配。这与sport/+匹配sport/的原因相同-- +匹配空字符串级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67305260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档