前言: mqtt 的主题一个层级的概念. 我们订阅多个主题就需要用到这个技术点

功能是在主题中引入层次。层次又分主题层级分隔符,多层通配符和单层通配符

需要注意的一点是: 这些层级不能用在发布消息的 Publish 接口中

层级分类

主题层级分隔符: /

多层通配符: #

单层通配符: +

主题层级分隔符

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

// 主题Topic1: 分了三层

/test/child/aaa

// 主题Topic2: 分了四层

/test/child/aaa2/bbb2

多层通配符

多层通配符"#"是一个匹配主题中任意层次数的通配符。我们用案例说明

案例1

订阅主题: /test/child/#

我们将收到这些主题发送来的消息:

/test/child

/test/child/aaa

/test/child/ccc

/test/child/aaa/bbb

/test/child/aaa/bbb/ddd

多层通配符可以理解为大于等于0的层次。

多层通配符只可以确定当前层或者下一层

常见错误 和正确表示案例

# // Success, 会接收到不以 / 开头的所有主题

/# // Success

/test/#/child // Error, #必须是最后一个字符

/test/# // Success

/test/child# //Error 无效的通配符

/test/child/# // Success

单层通配符

单层通配符 "+" 只匹配主题的一层

案例1

订阅主题: /test/child/+

我们将收到这些主题发送来的消息:

注意:接收不到 /test/child 主题发送的消息

/test/child/aaa

/test/child/bbb

/test/child/ccc

常见错误 和正确表示案例

+ //Success

/+ // Success

/test/+/child // Success,

/test/+ // Success

/test/child+ //Error 无效的通配符

/test/child/+ // Success

主题语法和用法

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

主题至少有一个字符长。

主题名字是大小写敏感的。比如说,ACCOUNTS和Accounts是两个不同的主题。

主题名字可以包含空格。比如,Accounts payable是一个有效的主题。

以/开头会产生一个不同的主题。比如说,/finnace与finance不同。/finance匹配"+/+"和/+,但不匹配+

不要在任何主题中包含null(Unicode \x0000)字符。

以下的原则应用于主题树的建造和内容

在主题树中,长度被限制于64k内但是在这以内没有限制层级的数目 。

可以有任意数目的根节点;也就是说,可以有任意数目的主题树

java mqtt 订阅主题_Mqtt 客户端多主题订阅相关推荐

  1. java mqtt丢包_MQTT 3.1协议非严肃反思录

    前言 MQTT 3.1协议在弱网络环境下(比如2G/3G等)表现不够好,因此才有了反思. 弱网环境下表现 手机等终端在弱网络环境下丢包情况会非常明显,连接MQTT Server成功率很低.相比单纯的请 ...

  2. 订阅mosquitto服务器状态各主题

    MQTT客户端可以通过订阅位于$SYS层次下的主题来查看mosquitto服务器的状态信息.标记为Static的主题对于每一次订阅只发布一次.其它所有主题每隔sys_interval(在mosquit ...

  3. mqtt session保持 订阅消息_MQTT系列 | MQTT消息的发布和订阅

    1. MQTT的发布 MQTT发布中最重要的是PUBLISH数据包,PUBLISH数据包是用于sender和receiver之间传输消息数据的.当Publisher要向某个Topic发布一条消息的时候 ...

  4. 仿酷安客户端的主题切换动画效果

    RippleAnimation 项目地址:wuyr/RippleAnimation  简介:仿酷安客户端的主题切换动画效果 更多:作者   提 Bug 标签: 博客详情: http://blog.cs ...

  5. SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)

    场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  6. Android Mqtt协议(连接、发布、订阅)实例、亲测可用

    实现步骤: 1.项目根目录build.gradle中添加: allprojects {repositories {...maven{ url "https://repo.eclipse.or ...

  7. mqtt协议视频教程_MQTT协议教程

    mqtt协议视频教程 MQTT协议是一种广泛用于物联网的机器对机器(M2M)协议. 这是基于消息的协议. 它非常轻巧,因此在物联网生态系统中被采用. 几乎所有的 物联网云平台都支持MQTT协议,以从智 ...

  8. windows10 安装mqtt服务器和client客户端进行本地调试

     一.安装mqtt服务器 使用emqx作为mqtt服务器,下载emqx-windows-4.3.8.zip. emqx-windows-4.3.8.zip 其他版本:Directory listing ...

  9. 微x怎么设置主题_微信主题怎么设置 微信主题设置方法

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注.  微信怎么设置主题皮肤?微信是我们现在经常使用的社 ...

  10. 微信气泡主题设置_微信主题! 米老鼠微信主题气泡设置教程方法

    阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注! ( 图文来源于网络,侵权联系删除 谢谢!) 米老鼠 ...

最新文章

  1. namenode需要多大内存
  2. Visual C++ 2010 使用心得 和帮助文档问题
  3. linux c 获取系统进程总数
  4. python字符串find函数-python常见字符串处理函数与用法汇总
  5. Vue+stylus实现自定义文字的loading组件
  6. juniper CLI 基本操作
  7. 利用可达矩阵判断连通性_leetcode240. 搜索二维矩阵 II
  8. html按钮按下效果_html提交按钮标签代码是什么,怎么使用?(示例)
  9. 【机器人】关键问题:动捕原点坐标系到机械臂基坐标系的转换
  10. MySql 1248 - Every derived table must have its own alias
  11. 迅捷pdf文档转换器注册码
  12. Pazera Free MP4 To MP3 Converter 1.6 中文64位+32位便携版,免费的视频转换器
  13. 【安信可IDE 1.5模板专题1】安信可windows一体化环境IDE V1.5 版本降临,体积更小,兼容新旧版本SDK编译
  14. 计算机网络基础之广域网
  15. 计算机名和ip不匹配,错误:主机名/ IP不匹配证书的altnames Node.js的
  16. 关于java读取文本文件乱码的问题
  17. BM3D算法相关笔记
  18. 检测视频中的人脸,并画出矩形框
  19. 简单总结里的结构化,成长型思维
  20. A-Level商务例题解析及练习

热门文章

  1. python期权BS定价模型delta,gamma,vega,theta分析及画3D图
  2. 【笔记】用python计算BS模型、隐波的笔记
  3. word文档通配符换行_[Word] 学习笔记
  4. 计算机毕业设计springboot+vue+elementUI高校志愿者管理系统(源码+系统+mysql数据库+Lw文档)
  5. U盘启动BIOS设置
  6. 博客园签名档图片圆角美化
  7. Spring MVC 学习笔记 by starscream
  8. Fortran系列(一):KIND的用法
  9. c++实验3——个人税收计算器
  10. 学计算机专业独立显卡有必要吗,独立显卡驱动有什么用(显卡驱动有必要安装吗)...