1 MQTT通信协议
MQTT(Message Queuing Telemetry Transport,消息队列遥测传 输)是一种基于客户端-服务端架构的消息传输协议,如今,MQTT 成为了最受欢迎的物联网协议,已广泛应用于车联网、智能家居、即时聊天应用和工业互 联网等领域。
1.1 MQTT 报文组成部分
固定头(Fixed header)、可变头(Variable header)以及有效载荷(Payload,消息体)。
- 固定头(Fixed header):存在于所有 MQTT 报文中,固定头中有报文类型标识,可用于识别是哪 种 MQTT 报文,譬如该报文是 CONNECT 报文还是 CONNACK 报文,亦或是其它类型报文。
- 可变头(Variable header):存在于部分类型的 MQTT 报文中,报文的类型决定了可变头是否存 在及其具体的内容。
- 消息体(Payload):存在于部分类型的 MQTT 报文中,payload 就是消息载体的意思。
关于 MQTT 协议的参考资料,链接地址如下:MQTT 协议参考资料
1.2 MQTT 客户端连接服务端步骤
- 首先客户端需要向服务端发送连接请求,这个连接请求实际上就是向服务端发送一个 CONNECT 报文,也就是发送了一个 CONNECT 数据包。
- MQTT 服务端收到连接请求后,会向客户端发送连接确认。连接确认实际上是向客户端发送一个 CONNACK 报文,也就是 CONNACK 数据包。
1.3 MQTT 客户端与服务端断开连接
如果客户端想要断开与服务端的连接,此时客户端可以主动向服务端发