下面提及到的图x-x都是指《MQTT协议3.1.1》内容所指。
第一章:
主要讲述数据表示
1. 二进制位:并不需要解析
2. 整数数值:使用网络子序(大字端)
3. UTF-8编码:控制报文的文本字段,通读图1-1即可
1. 提及一点:两字节的长度给出了后面的数据的字节数,不包含长度字段自身占用的两个字节。
2. 后面有一个叫“编辑约定”,讲的是文本标志中的每一个一致性声明都分配一个调用格式。这个理念还真有点作用。学习一下。
第二章:
- 报文格式,作为整个MQTT协议的应用信息的格式组成,读者清晰了解即可。
- 就目前的我们首先需要修改的libemqtt客户端代码来说,可以如下理解:
- 固定报头
- 剩余长度的计算方式(编码与解码,文档中提供了算法),为可变报头和有效载荷的总长度。其中,使用UTF-8编码的就要加上长度前缀。
- 可变报头:协议名、协议等级、连接标志、保存连接
- 有效载荷,可以暂且理解为“应用信息”,也就是我们真正需要传输的“有效数据”
- 固定报头
该章节主要理解:
1. 怎么去组成我们MQTT协议的报文?
2. 撇开服务器不讲,订阅与发布,就是真正意义上的接收者与发送者。
第三章:
本章内容就不再此详述,建议读者首先将3.1节内容看通透,其余的用到查阅。