本文主要是介绍【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet
文章目录
- 【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet
- 前言
- 说明
- 一、固定同步详解、可变头部详解
- 总结
前言
关于所有的类型的数据示例已经在上面一篇博客说完:
【IM即时通讯】MQTT协议的详解回顾的同学可以直达这里
说明
CONNACK
包是 CONNECT
包的响应,从服务端发送到客户端的第一个包必须是此包。
一、固定同步详解、可变头部详解
- 固定头部
+---------------------------------------------------------+
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---------------------------------------------------------+
| byte1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
+---------------------------------------------------------+
| byte2 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
+---------------------------------------------------------+
- 可变头部
+--------+----------------+---+---+---+---+---+---+---+---+
| Bit | Description | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---------------------------------------------------------+
| byte1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X |
+---------------------------------------------------------+
| byte2 | X | X | X | X | X | X | X | X |
+---------------------------------------------------------+
其中,
- 第 1 个字节用来作连接确认标记,其中第 1 ~ 7 位被保留,值均为 0。第 0 位(SP字段) 是 Session 是否存在标记(SP, Session Present Flag)。若 CleanSession 为(参见 CONNECT Packet 中相关说明)1,SP 字段必须为 0,且连接返回码也必须为 0;若 CleanSession 为 0,SP 字段的值取决于服务端是否为此客户端存储了 Session 状态信息:存储了,SP 取值为 1,否则取值为0。同样,连接返回码也取0。。
- 第 2 个字节是连接返回码(Connect Return code),只有当连接返回码值为 0 时,才表示服务端接受连接。服务端若返回了除 0 之外的其他值,紧接着必须断开连接。下表是各返回码代表的含义
Bit | Description |
---|---|
0 | Connection accepted【表示客客户端和服务端连接成功】 |
1 | 拒绝连接:协议版本不支持 |
2 | 拒绝连接:客户端 ID 被拒绝 |
3 | 拒绝连接:服务不可用 |
4 | 拒绝连接:用户名或密码错误 |
5 | 拒绝连接:没有认证 |
6~255 | 保留位,必须设置为0 (也有可能不为0)英文:【Reserved】 |
载荷
:
没有载荷内容
总结
下一个类型:PUBLISH Packet
这篇关于【IM即时通讯】MQTT协议的详解(3)- CONNACK Packet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!