发布消息有客户端发送到服务端,由服务端分发给相应的订阅者。每个发布消息与一个话题名称相关(及标题或通道)。
固定头
剩余长度 包括可变头和负荷数据长度
可变头
话题名称
UTF编码字符串,不可包括通配符。
消息ID
QoS 1和QoS2级消息里存在,
负荷数据
包含要发布的数据。数据的内容和格式与应用相关, 支持0长度负荷数据
响应
发布消息响应基于QoS等级,具体如下
QoS 0:
使得消息对任何感兴趣方都可获得
QoS 1
记录消息到永久存储,使得消息对任何感兴趣方都可获得,返回PUBACK消息给发送者
QoS 2
记录消息到永久存储,暂时不让对任何感兴趣方都可获得消息,返回PUBREC消息给发送者
3.4 PUBACK 发布确认
剩余长度域:可变头长度,
可变头
负荷:
无负荷数据
行为
客户端接收到PUBACK消息,丢弃原来的消息。
3.5 PUBREC-确认消息接收
PUBREC 为对发布消息的QoS等级2的响应。
3.6 PUBREL—确认发布发送
PUBREL:发布者发送给服务端端的PUBREC消息的响应
QoS level: 1
DUP FLAG : 0
Remain length field: 可变头:2字节
负荷:无
行为:
当服务端接收到发布这的PUBREL消息,服务端就会使得相关订阅者可获得之前的消息,同时以同样的消息ID ,发送PUBCOMP消息给发布这。
当订阅者接收到服务端的PUBREL消息是,定义者是的订阅应用可获得消息同时发送PUBCOMP消息个服务器。
3.7 PUBCOMP—-确认发布接收(part 3)
PUBCOMP为服务端发送给发布者的PUBREL消息的响应,或者
服务端发送给订阅者的PUBREL消息响应。
QoS 等级: 无
可变头长度: 2字节
Actions
客户端接收到PUBCOMP消息,丢弃原先已发布的消息,只发布一次到服务器。