MQTT协议(二)连接和心跳

本文详细介绍了MQTT协议中的连接流程,包括CONNECT消息的结构、Will Message的UTF-8编码、服务器响应的CONNACK消息以及心跳机制的PINGREQ和PINGRESP。在心跳检测中,客户端和服务器通过设定的Keep Alive timer来维持连接状态,若超时未收到响应,将考虑关闭连接。此外,根据Clean session flag,服务器决定是否保留客户端的订阅状态。
摘要由CSDN通过智能技术生成

本文按照 Message Type 介绍:连接(CONNECT)、心跳(PINGREQ/PINGRESP)、确认(CONNACK)、断开连接(DISCONNECT)

一、CONNECT(连接)

当客户端向服务器建议一个TCP/IP端口连接,协议基本会话必须使用一个CONNECT flow建立。 

下面是一个较为完整的CONNECT消息结构:


说明:
1、Fixed header/固定头部:

DUPQoSRETAIN标志不能被使用在CONNECT消息中(无效)。 

Remaining Length是可变头(12字节)的长度和payload的长度。这可以是一个多字节的字段。 

2、Variable header/可变头部(12字节)
byte1~byte9: 
    协议名称(MQIsdp)和协议版本(v3)都是固定的。
byte10:Connect Flags
     一个字节表示,除了第1位是保留未使用,其它7位都具有不同含义。 业务上很重要,对消息总体流程影响很大,需要牢记。
    bit[1]: Cl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值