java mqtt 订阅主题_Mqtt 客户端多主题订阅
前言: 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 客户端多主题订阅相关推荐
- java mqtt丢包_MQTT 3.1协议非严肃反思录
前言 MQTT 3.1协议在弱网络环境下(比如2G/3G等)表现不够好,因此才有了反思. 弱网环境下表现 手机等终端在弱网络环境下丢包情况会非常明显,连接MQTT Server成功率很低.相比单纯的请 ...
- 订阅mosquitto服务器状态各主题
MQTT客户端可以通过订阅位于$SYS层次下的主题来查看mosquitto服务器的状态信息.标记为Static的主题对于每一次订阅只发布一次.其它所有主题每隔sys_interval(在mosquit ...
- mqtt session保持 订阅消息_MQTT系列 | MQTT消息的发布和订阅
1. MQTT的发布 MQTT发布中最重要的是PUBLISH数据包,PUBLISH数据包是用于sender和receiver之间传输消息数据的.当Publisher要向某个Topic发布一条消息的时候 ...
- 仿酷安客户端的主题切换动画效果
RippleAnimation 项目地址:wuyr/RippleAnimation 简介:仿酷安客户端的主题切换动画效果 更多:作者 提 Bug 标签: 博客详情: http://blog.cs ...
- SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送)
场景 Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...
- Android Mqtt协议(连接、发布、订阅)实例、亲测可用
实现步骤: 1.项目根目录build.gradle中添加: allprojects {repositories {...maven{ url "https://repo.eclipse.or ...
- mqtt协议视频教程_MQTT协议教程
mqtt协议视频教程 MQTT协议是一种广泛用于物联网的机器对机器(M2M)协议. 这是基于消息的协议. 它非常轻巧,因此在物联网生态系统中被采用. 几乎所有的 物联网云平台都支持MQTT协议,以从智 ...
- windows10 安装mqtt服务器和client客户端进行本地调试
一.安装mqtt服务器 使用emqx作为mqtt服务器,下载emqx-windows-4.3.8.zip. emqx-windows-4.3.8.zip 其他版本:Directory listing ...
- 微x怎么设置主题_微信主题怎么设置 微信主题设置方法
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注. 微信怎么设置主题皮肤?微信是我们现在经常使用的社 ...
- 微信气泡主题设置_微信主题! 米老鼠微信主题气泡设置教程方法
阅读本文前,请您先点击上面的蓝色字体,再点击"关注",这样您就可以免费收到最新内容了.每天都有分享,完全是免费订阅,请放心关注! ( 图文来源于网络,侵权联系删除 谢谢!) 米老鼠 ...
最新文章
- namenode需要多大内存
- Visual C++ 2010 使用心得 和帮助文档问题
- linux c 获取系统进程总数
- python字符串find函数-python常见字符串处理函数与用法汇总
- Vue+stylus实现自定义文字的loading组件
- juniper CLI 基本操作
- 利用可达矩阵判断连通性_leetcode240. 搜索二维矩阵 II
- html按钮按下效果_html提交按钮标签代码是什么,怎么使用?(示例)
- 【机器人】关键问题:动捕原点坐标系到机械臂基坐标系的转换
- MySql 1248 - Every derived table must have its own alias
- 迅捷pdf文档转换器注册码
- Pazera Free MP4 To MP3 Converter 1.6 中文64位+32位便携版,免费的视频转换器
- 【安信可IDE 1.5模板专题1】安信可windows一体化环境IDE V1.5 版本降临,体积更小,兼容新旧版本SDK编译
- 计算机网络基础之广域网
- 计算机名和ip不匹配,错误:主机名/ IP不匹配证书的altnames Node.js的
- 关于java读取文本文件乱码的问题
- BM3D算法相关笔记
- 检测视频中的人脸,并画出矩形框
- 简单总结里的结构化,成长型思维
- A-Level商务例题解析及练习
热门文章
- python期权BS定价模型delta,gamma,vega,theta分析及画3D图
- 【笔记】用python计算BS模型、隐波的笔记
- word文档通配符换行_[Word] 学习笔记
- 计算机毕业设计springboot+vue+elementUI高校志愿者管理系统(源码+系统+mysql数据库+Lw文档)
- U盘启动BIOS设置
- 博客园签名档图片圆角美化
- Spring MVC 学习笔记 by starscream
- Fortran系列(一):KIND的用法
- c++实验3——个人税收计算器
- 学计算机专业独立显卡有必要吗,独立显卡驱动有什么用(显卡驱动有必要安装吗)...