MQTT协议-取消订阅和取消订阅确认
创始人
2024-05-31 04:28:34

MQTT协议-取消订阅和取消订阅确认

客户端向服务器取消订阅

取消订阅的前提是客户端已经通过CONNECT报文连接上服务器,并且订阅了一个主题

UNSUBSCRIBE—取消订阅

取消订阅的报文同样是由固定报头+可变报头+有效载荷组成

固定报头由两个字节组成,第一个字节固定为A2,第二个字节是剩余长度

在这里插入图片描述

可变报头的字节与订阅主题报文的可变报头内容一致,也就是取消和订阅的是同一个主题,不能没有订阅就取消,根据前面文章知道订阅主题报文的可变报头为00 0A,所以这里也是00 0A

在这里插入图片描述

在订阅主题时有效载荷是由主题过滤器和服务质量要求组成的,但这里取消订阅就没有了服务质量要求,只有一个主题过滤器,该主题也是具有订阅权限的Topic类,要转为十六进制才能组合报文

在这里插入图片描述

将自己的订阅权限Topic类转为十六进制,长度为30,十六进制为1E,结果如下

在这里插入图片描述

网络调试助手发送取消订阅报文

先发送CONNECT报文连接阿里云,再发送订阅主题报文,最后发送取消订阅主题报文,阿里云回复了取消订阅确认报文B0 02 00 0A,后续对该报文进行解析

在这里插入图片描述

UNSUBACK一取消订阅确认

阿里云回复的取消订阅确认报文由固定报头+可变报头+有效载荷组成

固定报头如下

在这里插入图片描述

可变报头与取消订阅报文的可变报头一致,都表示同一个Topic主题

在这里插入图片描述

取消订阅确认报文没有有效载荷,所以这一部分为空

在这里插入图片描述

因此,将固定报头+可变报头+有效载荷组合起来,就得到了B0 ?? 00 0A

根据剩余长度计算方法可知,??后面只有两个字节,因此剩余长度为02,所以取消订阅确认的完整报文为:B0 02 00 0A

相关内容

热门资讯

广西宁明:AI+低空经济赋能 ... 转自:新华财经日前,“人工智能赋能县域经济高质量发展院士专家宁明行”活动暨广西人机交互与智能决策重点...
视频丨转发周知!春运火车票今起... 今天(1月19日)春运第一天火车票开售哪天可买春节假期第一天的车票?2026年春运购票有哪些新变化?...
钨金属原料价格持续上涨,翔鹭钨... (来源:财闻) 预计归属于上市公司股东的净利润为1.25亿元~1.8亿元,...
网友:为什么飞船必须有舷窗 转... #神20舷窗裂纹维修细节披露#【网友:#为什么飞船必须有舷窗#[思考]转存长知识!】今天,#神20飞...
监管对“投资大V”出手,收割粉... 财联社1月19日讯(记者 吴雨其)在许多普通投资者眼里,社交平台上的“实盘冠军”、“投资大V”,似乎...