• MQTT通配符


    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

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

    主题层次分隔符被用来在主题中引入层次。多层的通配符和单层通配符可以被使用,但他们不能被使用来做发布者的消息。

    1、主题层级分隔符/

    / 被用来分割主题树的每一层,并给主题空间提供分等级的结构。当两个通配符在一个主题中出现的时候,主题层次分隔符的使用是很重要的。

    2、多层通配符#

    # 是一个匹配主题中任意层次数的通配符。比如说,如果你订阅了finance/stock/ibm/#,你就可以接收到以下这些主题的消息。

    1、finance/stock/ibm
    2、finance/stock/ibm/closingprice
    3、finance/stock/ibm/currentprice
    多层通配符有可以表示大于等于0的层次。因此,finance/#也可以匹配到单独的finance,在这种情况下#代表0层。在这种语境下主题层次分隔符/就没有意义了。因为没有可以分的层次。

    多层通配符只可以确定当前层或者下一层。因此,#和finance/#都是有效的,但是finance#不是有效的。多层通配符一定要是主题树的最后一个字符。比如说,finance/#是有效的,但是finance/#/closingprice是无效的。

    3、单层通配符+

    + 只匹配主题的一层。比如说,finance/stock/+匹配finance/stock/ibm和finance/stock/xyz,但是不匹配finance/stock/ibm/closingprice。另外,因为单层通配符只匹配1层,finance/+不匹配finance。

    单层通配符可以被用于主题树的任意层级,连带多层通配符。它必须被用在主题层级分隔符/的右边,除非它是指定自己。因此,+和finance/+都是有效的,但是finance+无效。单层通配符可以用在主题树的末端,也可以用在中间。比如说,finance/+和finance/+/ibm都是有效的。

    4、主题语法和用法

    当你建立一个应用,设计主题树的时候应该考虑以下的主题名字的语法和语义:

    主题至少有一个字符长。
    主题名字是大小写敏感的。比如说,ACCOUNTS和Accounts是两个不同的主题。
    主题名字可以包含空格。比如,Accounts payable是一个有效的主题。
    以/开头会产生一个不同的主题。比如说,/finnace与finance不同。/finance匹配"+/+"和/+,但不匹配+
    不要在任何主题中包含null(Unicode x0000)字符。
    以下的原则应用于主题树的建造和内容

    在主题树中,长度被限制于64k内但是在这以内没有限制层级的数目 。
    可以有任意数目的根节点;也就是说,可以有任意数目的主题树。

    5、参考网站

    http://blog.csdn.net/waltonhuang/article/details/52066908

    6、原文地址

    http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html#appendix-a

  • 相关阅读:
    python文件压缩示例(压缩当前目录)
    C#实现Socket聊天室
    使用微软企业库5.0进行WCF服务边界上的异常保护
    使用python的内置ctypes模块与c、c++写的dll进行交互
    Python使用tkinter库创建图形界面HelloWorld
    手动处理Team Foundation Server 2010 数据仓库和分析服务数据库
    Linux mmap
    iwconfig linux 命令行配置无线网卡
    Qt中文乱码,设置字符集
    Flex 宋体、黑体、楷体、仿宋字体样式
  • 原文地址:https://www.cnblogs.com/mao2080/p/7275544.html
Copyright © 2020-2023  润新知