MQTT——取消订阅报文和断开链接报文

笔者已经把链接报文,订阅报文,发布报文都讲解了完了。而接下来就是取消订阅报文和断开链接报文。和其余的报文比较的话,他们显示很是简单。甚至笔者以为能够没必要要拿出来说。只要看一下MQTT文档就没有什么不清楚的。为了完整一点笔者就把他们放在一直了。缓存

取消订阅报文spa

固定报头的结构笔者不都说了。主要记得固定报头的QOS为1就好了。笔者把官方的列表贴过来了。以下blog

咱们知道固定报头分三部分,一个是报文类型,一个是报文标示。一个是剩余长度。取消订阅报文类型的值为10。而后咱们看QOS 为1。对应的二进制为10100010。Remaining Length为剩余长度,一样子二进制为八位。因此固定报头的二进制必定是10100010  xxxxxxxx。文档

 xxxxxxxx表示剩余长度的二进制。后面笔者还会抓包来看。二进制

可变报头里面就一个消息ID的项。没有其余的。im

有效载何里面存放的是主题列表。就是用于取消订阅的主题列表。以下d3

笔者不知道到现还有没有人看不懂这种列表的。Topic Filter为主题过滤,便是主题名。而byte 1相似这种表示每一元素。好比上面举列中的Topic Filter是有五元素组成的。后面是每个元素的二进制。客户端

MQTT 文档里面对取消订阅报文并无特别的要求。也只是删除的动做作了一些要求。删除这个订阅的时候,就必须中止发送任何信息了。同时若是有正在分送中的QOS 1 QOS2的信息就必需要完成才行。固然也能够分送准备的缓存信息。img

上面咱们看到了取消订阅报文的QOS为1。因此会有一个回应。便是取消订阅肯定报文(UNSUBACK)。取消订阅肯定报文(UNSUBACK)只有固定报头和可变报头,可变报头里面只有一个消息ID的项。没有什么可说的。服务端

相关的包

取消订阅报文

取消订阅肯定报文

咱们能够看到取消订阅报文有多么的简单,可是仍是不如断开链接报文来的简单。由于断开链接报文没有可变报头,没有有效载荷。就一个固定报头。没有错就是一个固定报头。很少说,笔者把固定报头的列表贴出来。以下

上面的列表就是断开链接报文的所有。

断开链接报的结构是最简单的。可是文档中仍是指出了几点要注意的。

1)判断固定报头中的标示部分必须是0000,若是不是0就断开链接。

2)客户端不能在经过该链接发送任何信息了。

3)服报端要删除与当前链接关联的未发布的遗嘱消息。同时若是客户端没有断开的话,服务端必须断开。

断开链接报文

相关文章
相关标签/搜索