(五)、MQTT3.1.1-CONNACK控制包

1、CONNACK确认收到连接请求

CONNACK确认收到连接请求包数据内容

CONNACK控制包

结构

固定包头

控制包类型

CONNACK连接类型

bit[7-4] 0x02<<4

特殊标识

bit[3-0] 0x00

剩余长度

(Remaining Length)

1字节

0x02

可变包头

连接确认标识

(Connect Acknowledge Flags)一个字节

0x00+SP1

连接返回码

(Connect Return code)一个字节

0x00 Connection Accepted

0x01 Connection Refused,

unacceptable protocol version

0x02 Connection Refused,

identifier rejected

0x03 Connection Refused,

Server unavailable

0x04 Connection Refused,

bad user name or password

0x05 Connection Refused,

not authorized

6-255 Reserved

载荷

2、说明:

如果服务端接受了一个SP1(Clean Session)设置为1的连接,服务端必须将CONNACK包中的Session Present设置为0,并且CONNACK包的返回码也设置为0。

如果服务端接受了一个Clean Session设置为0的连接,Session Present的值取决于服务端是否已经存储了客户端Id对应的会话状态。如果服务端已经存储了会话状态,CONNACK包中的Session Present必须设置为1。如果服务端没有存储会话状态,CONNACK包的Session Present必须设置为0。另外CONNACK包中的返回码必须设为0。

Session Present标识使得客户端能够建立连接,不论客户端和服务端在是否已经存储了会话状态上达成共识。

一旦会话的初始设置完成,存储会话状态的客户端会期望服务端也存储了会话状态。万一Session Present的值不符合预期,客户端可以选择是继续处理这个会话还是断开连接。客户端可以通过断开连接,把CleanSession设置为1重新连接,然后再断开连接,来决定客户端和服务端的会话状态。

3、数据调试

当网络调试助手服务器接收到了MQTTX客户端的连接请求后(CONNECT数据包),MQTT服务器返回CONNACK数据包,确认连接请求。下面编辑服务器返回的数据包,再通过网络调试助手给客户端发送该数据。

数据

说明

CONNACK控制包

结构

固定包头

控制包类型

CONNACK连接类型

bit[7-4] 0x02<<4

0x20

确认收到连接请求包数据

特殊标识

bit[3-0] 0x00

剩余长度

(Remaining Length)

1字节

0x02

0x02

剩余长度

2byte

可变包头

连接确认标识

(Connect Acknowledge Flags)一个字节

0x00+SP1

0x00

SP1为0

连接返回码

(Connect Return code)一个字节

0x00 Connection Accepted

0x00

Connection Accepted

0x01 Connection Refused,

unacceptable protocol version

0x02 Connection Refused,

identifier rejected

0x03 Connection Refused,

Server unavailable

0x04 Connection Refused,

bad user name or password

0x05 Connection Refused,

not authorized

6-255 Reserved

载荷

完整的数据:20 02 00 00

网络调试助手发送CONNACK数据包

MQTTX客户端收到CONNACK数据包后显示已连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值