client 在可以发布和订阅消息之前,必须先连接到 broker,下面我们来看一下连接到 broker 的流程。
1 Client 连接到 Broker 的流程

2 CONNECT
连接的建立由 Client 端发起,Client 端首先向 broker 发送一个 CONNECT 数据包,CONNECT 数据包包含以下内容(这里我们略过 fixed header)。
2.1 可变头(Variable header)
在 CONNECT 数据包可变头中,含有以下信息。
协议名称(Protocol name):值固定为 MQTT 字符。
协议版本:对于 MQTT3.1.1 来说,值为 4.
用户名标识:消息体中是否有用户名字段, 1bit , 0 或 1。
密码标识:消息体中是否有密码字段,1bit,0 或 1。
遗愿消息 Retain 标志(will retain):标