前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[MQTT] 通配符订阅

[MQTT] 通配符订阅

作者头像
科控物联
发布2022-03-29 18:59:36
2.7K0
发布2022-03-29 18:59:36
举报
文章被收录于专栏:科控自动化科控自动化

附录 A - 主题通配符

订阅可能包含特殊字符,允许您一次订阅多个主题。

主题级别分隔符用于将结构引入主题,因此可以为此目的在主题中指定。多级通配符和单级通配符可用于订阅,但消息发布者不能在主题中使用。

  • 主题级别分隔符
  • 正斜杠 (/) 用于分隔主题树中的每个级别,并为主题空间提供分层结构。当在订阅者指定的主题中遇到两个通配符时,使用主题级别分隔符非常重要。
  • 多级通配符
  • 数字符号 (#) 是与主题中任意数量的级别匹配的通配符。例如,如果您订阅了 finance/stock/ibm/#,则会收到有关以下主题的消息: finance/stock/ibm finance/stock/ibm/closingprice finance/stock/ibm/currentprice 多级通配符可以表示零个或多个级别。因此,finance/#也可以匹配单数finance,其中#表示零级别。在此上下文中,主题级别分隔符毫无意义,因为没有要分隔的级别。 多级通配符只能单独指定,也可以在主题级分隔符旁边指定。因此,#finance/#都是有效的,但finance#是无效的。多级通配符必须是主题树中使用的最后一个字符。例如,财务/#有效,但财务/#/平仓价格无效。
  • 单级通配符
  • 加号 (+) 是仅匹配一个主题级别的通配符。例如,finance/stock/+匹配finance/stock/ibmfinance/stock/xyz,但不能匹配 finance/stock/ibm/closeprice。此外,由于单级通配符仅匹配单个级别,因此finance/+finance不匹配。 单级通配符可以在主题树中的任何级别使用,也可以与多级通配符结合使用。它必须在主题级别分隔符旁边使用,除非它是单独指定的。因此,+finance/+都是有效的,但finance+是无效的。单级通配符可以在主题树的末尾或主题树中使用。例如,finance/+finance/+/ibm都是有效的。

主题语义和用法

构建应用程序时,主题树的设计应考虑以下主题名称语法和语义原则:

  • 主题长度必须至少为一个字符。
  • 主题名称区分大小写。例如,"帐户""帐户"是两个不同的主题。
  • 主题名称可以包含空格字符。例如,应付帐款是一个有效的主题。
  • 前导"/"创建一个不同的主题。例如,/financefinance不同。/finance匹配"+/+"和"/+",但不匹配"+"。
  • 不要在任何主题中包含空字符(Unicode)。\x0000

以下原则适用于主题树的构造和内容:

  • 长度限制为 64k,但其中主题树中的级别数没有限制。
  • 可以有任意数量的根节点;也就是说,可以有任意数量的主题树。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 附录 A - 主题通配符
    • 主题语义和用法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档