Mqtt入门之请求连接信息Connect

来源:互联网 发布:幼儿园美工活动室 编辑:程序博客网 时间:2024/06/01 09:51

可变头部

Connect消息的可变头部分为4部分:

  1. 协议名称Protocol Name;
  2. 协议版本Protocol Level;
  3. 连接标识Connect Flags;
  4. 空闲连接保持时间Keep Alive;

连接标识如下图所示:
这里写图片描述
Netty实现类MqttConnectVariableHeader如下图所示:
这里写图片描述

消息体

Connect消息的消息体包含的字段:客户端唯一标识(必填)、用户名、密码、WillTopic和WillMessage。可选字段是否需要填写,取决于标识位Flag。
这里写图片描述

连接行为参数

清理会话Clean Session

功能:是否清理会话
如果需要清理会话,则每次建立连接时开启新的会话,会话和连接持续相同时间。
会话存储内容如下图所示:
这里写图片描述

遗嘱标志Will Flag

功能:是否启用遗嘱消息功能;
当启用遗嘱消息功能时,服务端先存储遗嘱消息,当服务端认为连接异常时,即可发布遗嘱消息,主要是以下几种情况:
这里写图片描述
同时连接标志的WillQos和WillRetain,消息体的WillTopic和WillMessage必须被设置;当遗嘱消息被发布或者收到客户端发送的断连消息DISCONNECT时,遗嘱消息被删除。

遗嘱Qos Will Qos

功能:遗嘱消息的Qos;
这里写图片描述

遗嘱保留 Will Retain

功能:遗嘱消息被发布时是否需要被保留;

空闲连接保持时间Keep Alive

功能:连接允许的最大空闲时间,超过该时间服务端断开连接;
客户端可以通过发送心跳报文PINGREQ来保持连接,如果合理时间内没收到心跳响应报文PINGRESP,则客户端应该断开连接。

原创粉丝点击