MQTT协议详解 三、MQTT控制包(CONNECT)


系列文章目录

MQTT协议详解 一、MQTT简介

MQTT协议详解 二、MQTT控制包格式

MQTT协议详解 三、MQTT控制包(CONNECT)


前言

上一章中介绍了MQTT控制包的组成,这一章将详细介绍MQTT中CONNECT控制包。

CONNECT(客户端请求连接服务端)

当客户端与服务端建立网络连接(TCP/UDP连接等)后,第一个从客户端发送给服务端的包必须是CONNECT包。并且每次网络连接时,客户端只能发送一次CONNECT包。若客户端在一次连接中,发送多次CONNECT包。服务端将会把接收到的第二个CONNECT包当做违反协议处理,同时会立即断开与客户端的连接。
在上一章载荷部分有提到CONNECT包中是必须包含载荷。其有效载荷包含客户端标识符、主题、消息、用户名、密码。其中客户端标识符是必须含有的,其他都是可选项。它们的存在是根据可变包头中的连接标识确定的。

一、固定包头(2字节)

剩余长度是指可变包头长度(10字节)加上载荷的长度。计算方式请见第二章中剩余长度部分。

7 6 5 4 3 2 1 0
byte1 控制包类型 保留
0 0 0 1 0 0 0 0
byte2 剩余长度

二、可变包头(10字节)

CONNECT包的可变包头由四个字段按照如下顺序构成:协议名字(6字节),协议等级(1字节),连接标识(1字节),保持连接(2字节)

协议名字(6字节)

协议名称为大写的字符串"MQTT",当服务端检测到协议名称不正确时,会立即断开与客户端的连接。所以请注意 1.大写的、2.字符串、3."MQTT"

协议名称
</
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值