MQTT协议-发布消息和发布确认
PUBLISH一发布消息
PUBLISH控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息。
发布消息报文由以下5个部分组成
固定报头由两个字节组成,第一个字节的高4位固定为0011,第2位和第1位表示Qos等级,可设置为等级0,所以是00,第3位和第0位也可以设置为0,第二个字节是剩余长度,用??暂时代替,因此,固定报头为30 ??
可变报头由两部分组成,一个是主题名,一个是报文标识符,主题名就是阿里云里具有发布权限的Topic类
报文标识符只有在Qos等级是1或者2时才出现在报文中,因为本次实验设置的等级是0,所以这个报文标识符就没有
所以可变报头的数据就只有发布权限的主题名,在阿里云里可以选择物模型的Topic类,方便后续传输真实数据
有效载荷包含将被发布的应用信息,数据的内容和格式使用的是JSON格式
JSON格式的表现形式如下
多个键值的JSON格式,在上传本地设备数据到阿里云物模型时也是使用这种格式,每一个键值之间用逗号来隔开
如果Qos等级为0,则没有响应,因此本次实验发布消息报文也没有响应这部分
动作没有具体的数据,不参与报文数据组装
因为响应和动作都没有,所以发布消息的PUBLISH报文可简化为由固定报头+可变报头+有效载荷三部分组成