客户端与服务器建立连接之后,客户端开始向服务器发送数据,这个数据即通过PUBLISH数据包进行,但是PUBLISH按照QOS的等级服务器的响应有所不同,QOS等级越高响应越复杂,同时数据可靠性越高。当Qos=2时,数据交换除去PUBLISH部分外,还有三个部分,即PUBREC、PUBREL、PUBCOMP。
当服务器接收到QOS=2的客户端发送的PUBLISH数据包时,将会返回PUBREC数据包。
PUBREC发布收到包数据内容
PUBREC 控制包 结构 | 固定包头 | 控制包类型 | PUBACK连接类型 | bit[7-0] 0x05<<4+0x00 |
剩余长度 | (Remaining Length) 0x02 | |||
可变包头 | 包唯一标识(2byte) | 于PUBLISH包中的唯一标识一致 | ||
载荷 | 无 |
说明:PUBREC包用来响应QoS 2的PUBLISH包。这是QoS 2协议交换的第二个包。
PUBREL发布收到包数据内容
PUBREL 控制包 结构 | 固定包头 | 控制包类型 | PUBACK连接类型 | bit[7-0] 0x06<<4+0x02 |
剩余长度 | (Remaining Length) 0x02 | |||
可变包头 | 包唯一标识(2byte) | 于PUBLISH包中的唯一标识一致 | ||
载荷 | 无 |
说明:PUBREL包用来响应PUBREC包。是QoS 2协议交换的第三部分。
PUBREL发布收到包数据内容
PUBREL 控制包 结构 | 固定包头 | 控制包类型 | PUBACK连接类型 | bit[7-0] 0x07<<4+0x00 |
剩余长度 | (Remaining Length) 0x02 | |||
可变包头 | 包唯一标识(2byte) | 于PUBLISH包中的唯一标识一致 | ||
载荷 | 无 |
说明:PUBCOMP包用来响应PUBREL包。这是QoS 2协议交换的第四个也是最后一个包。