MQTT协议是一个发布/订阅协议。工作在TCP/IP协议族上。
很多的APP使用的推送协议就是这个,基本原理就是用户订阅(subscribe)某个主题(topic),然后当有人发布(publish)这个主题后,服务器就会将这个主题推送给订阅了这个主题的所有用户。
下面是mqtt整个通信流程中控制报文的类型(后面协议格式会讲)
从此处引用 https://www.cnblogs.com/xiaohanlin/p/8683503.html
名字 | 值 | 流向 | 描述 |
CONNECT | 1 | C->S | 客户端请求与服务端建立连接 |
CONNACK | 2 | S->C | 服务端确认连接建立 |
PUBLISH | 3 | CóS | 发布消息 |
PUBACK | 4 | CóS | 收到发布消息确认 |
PUBREC | 5 | CóS | 发布消息收到 |
PUBREL | 6 | CóS | 发布消息释放 |
PUBCOMP | 7 | CóS | 发布消息完成 |
SUBSCRIBE | 8 | C->S | 订阅请求 |
SUBACK | 9 | S->C | 订阅确认 |
UNSUBSCRIBE | 10 | C->S | 取消订阅 |
UNSUBACK | 11 | S->C | 取消订阅确认 |
PING | 12 | C->S | 客户端发送PING(连接保活)命令 |
PINGRSP | 13 | S->C | PING命令回复 |
DISCONNECT | 14 | C->S | 断开连接 |
这些类型也基本上描绘了mqtt通信完整流程。
通信过程中的报文包括: 固定报头(fixed header), 可变报头(variable header), 有效载荷(Payload)
具体如下 引用自 https://www.cnblogs.com/hayasi/p/7743356.html
固定报头描述
待续