MQTT-发布与订阅的报文 天天微头条
发布消息报文-Publish在MQTT发布/订阅模式中,一个客户端既可以是发布者,也可以是订阅者,也可以同时具备这两个身份。当客户端发布一条消息时,它会被发送到代理,然后代理将消息路由到该主题的所有订阅者。当客户端订阅一个主题时,它会收到代理转发到该主题的所有消息
订阅主题报文-Subscribe客户端连接broker后就可以发布消息,发布消息需要用Publish报文
Publish报文基础字段:
【资料图】
Topic Name-必填
字段类型:utf-8类型的字符串
字段含义:指定发布消息的主题,一条消息只能指定一个主题,如果要发送给多个主题需要指定多条消息
QoS-必填
字段类型:int字段含义:指定消息的服务质量等级,基础介绍中的QoS level 1、2、3Payload-必填
字段类型:binary(二进制)字段含义:用于指定消息的实际内容,MQTT作为二进制协议,payload可以是任何格式的协议,json、二进制、密文等Retained-选填
字段类型:bool字段含义:当前消息是否为保留消息Packet ID
唯一的标记一条消息,QOS为1或者2的时候固定出现mqtt客户端内部实现,无需我们手动实现DUP
消息是否重发标识,QoS 1&2的时候固定出现mqtt客户端内部实现,无需我们手动实现
取消订阅报文-Unsubscribe订阅主题需要使用Subscribe报文,主要包含一个Packet ID 和Subscription List(订阅列表)
Packet ID
用来唯一标识Subscribe报文以及匹配服务端返回的SUBACK的 Packet ID,无需手动设置
Subscription List
订阅列表可以包含多个订阅,每个订阅有一个topic filter和 qos组成,可以通过Subscribe报文一次性订阅多个主题,Subscribe中主题过滤器和Publish中topic不同,可以使用通配符匹配多个主题
而Publish中每个消息必须指定一个明确主题
订阅报文中的的QoS字段是代理向订阅者转发消息时能使用的最大等级, 如果超过这个QoS等级的消息也会转发,如果发送这种情况,消息也会转发,但是QoS会降级,比如订阅的时候请求的等级为1,发布者如果发布的为2等级,代理转发的时候会降级为1,如果发布者发布0或者1,因为没有超过请求者最大的QoS,会保持不变,相当于消息转发时候的QoS等级永远是消息发布时的QoS等级和订阅时候服务端授予的QoS等级这两者的最小值
订阅逻辑
订阅的时候同一个客户端使用相同主题的过滤器多次订阅时,新的订阅将覆盖旧的订阅,不会出现订阅失败和收到重复的消息,如果同一个客户端使用不同的主题过滤器进行订阅,不同的主题过滤器匹配到同一个主题时,每个订阅都将收到一次消息
订阅可能会失败,比如不具备主题的访问权限或者拒绝订阅,broker会返回SUBACK报文返回订阅的结果,SUBACK报文中包含Subscribe报文一致的Packet ID,以及和订阅列表一一对应的Reason Codes
Reason Codes
订阅结果的原因码
0x00-订阅成功且最大QoS等级为0
0x01-订阅成功且最大QoS等级为1
0x02-订阅成功且最大QoS等级为2
0x80-订阅失败
取消订阅报文与订阅报文类型,包含一个Packet ID 和一个期望取消的主题过滤器列表,想要取消的Topic filter 需要与实际订阅的 Topic filter完全的文本匹配
Unsubscribe报文同样也有UNSUBACK报文进行响应,但是在MQTT 3.1.1没有Reason Codes原因码确认是否成功, 在MQTT 5.0里面进行补充,有对应Reason Codes
标签:
- 曲线图在电脑上面怎么做呢?在表格中绘制曲线图的操作方法是什么?
- 八种重要证件丢失补办攻略是什么?重要证件丢失可以报警调监控吗?
- 胡椒粉是用什么做的?胡椒粉吃了对身体有什么好处?
- 老三板在哪里看盘?老三板交易规则是什么?
- 桌面图标变大了怎么调小 桌面图标变成白色文件怎么恢复?
- 糖放太多酵母会不会失效?怎么鉴定酵母是否失效?
- 老三板股票怎么开户?老三板是什么?老三板股票交易软件有哪些?
- 甘肃省农村信用社联合社原纪委书记王蓉生接受审查调查 世界讯息
- 酵母粉开袋后能放多久?酵母化开后多久失去功效?
- 微软与英伟达支持的CoreWeave签署价值数十亿美元的AI算力交易
- 椒盐皮皮虾要不要剥壳吃 椒盐皮皮虾需要哪些材料?
- dtu的工作原理是什么?dtu的核心功能是什么?
- 金融风险包括哪些?金融风险预警系统是什么?
- 大小非是什么意思?大非小非可以大宗交易吗?
- 天天观天下!【乡村振兴在青海】技能培训,烹饪乡村振兴“好味道”
- 许昌市市长刘涛到禹州市调研指导麦收工作
- 大病保险一年多少钱(一年一交的大病保险是什么)
- 染发对冲是什么意思?星盘对冲是什么意思?
- 仙佑医药膏药的种类和选择? 郑州仙佑膏药的质量控制 天天时快讯
- 债基为什么会突然大幅下跌?债基的收益一般是多少?
- 外地银行卡可以作为工资卡吗?工资卡为什么要指定银行?
- 宫锁心玉是哪一年的电视剧?宫锁心玉剧情分集剧情介绍
- 已发生8起起火事故,捷豹路虎宣布紧急召回
- 理财产品双休日有收益吗?理财产品不保本的原因是什么?
- 5699元起 moto razr 40 Ultra发布:3.6英寸外屏比iPhone 4还大
- 螺蛳粉当饭吃的危害有哪些?螺蛳粉为什么叫螺蛳粉?
- 焦作市委书记葛巧红深入博爱县、武陟县调研指导麦收工作-世界消息
- 股票技术是什么?股票技术真的有用吗?
- 狮子座在生活中是相当节俭的一个人 抠门习惯了?
- 老千股的主要特征是什么?老千股的主要特点是什么?
- 曲线图在电脑上面怎么做呢?在表格中绘制曲
- 八种重要证件丢失补办攻略是什么?重要证件
- 胡椒粉是用什么做的?胡椒粉吃了对身体有什
- 老三板在哪里看盘?老三板交易规则是什么?
- 桌面图标变大了怎么调小 桌面图标变成白色
- 糖放太多酵母会不会失效?怎么鉴定酵母是否
- 老三板股票怎么开户?老三板是什么?老三板
- 甘肃省农村信用社联合社原纪委书记王蓉生接
- 酵母粉开袋后能放多久?酵母化开后多久失去
- 微软与英伟达支持的CoreWeave签署价值数十
- 椒盐皮皮虾要不要剥壳吃 椒盐皮皮虾需要哪
- dtu的工作原理是什么?dtu的核心功能是什么?
- 金融风险包括哪些?金融风险预警系统是什么
- 大小非是什么意思?大非小非可以大宗交易吗
- 天天观天下!【乡村振兴在青海】技能培训,
- 许昌市市长刘涛到禹州市调研指导麦收工作
- 大病保险一年多少钱(一年一交的大病保险是
- 染发对冲是什么意思?星盘对冲是什么意思?
- 仙佑医药膏药的种类和选择? 郑州仙佑膏药
- 债基为什么会突然大幅下跌?债基的收益一般
- 外地银行卡可以作为工资卡吗?工资卡为什么
- 宫锁心玉是哪一年的电视剧?宫锁心玉剧情分
- 已发生8起起火事故,捷豹路虎宣布紧急召回
- 理财产品双休日有收益吗?理财产品不保本的
- 5699元起 moto razr 40 Ultra发布:3.6
- 螺蛳粉当饭吃的危害有哪些?螺蛳粉为什么叫
- 焦作市委书记葛巧红深入博爱县、武陟县调研
- 股票技术是什么?股票技术真的有用吗?
- 狮子座在生活中是相当节俭的一个人 抠门习
- 老千股的主要特征是什么?老千股的主要特点