Clean start、Will、Will QoS 和 Retain 标志出现在 CONNECT 消息的可变头中。
位置:Connect 标志字节的第 1 位。
对于代理,使客户机返回已知的“清除的”状态。如果设置了此标志,代理将废弃任何未完成的消息,删除客户机的所有预订,并将消息标识重置为 1。客户机可在没有任何来自先前的连接的数据干扰当前连接的风险的情况下继续。下表中显示了 Clean start 标志的格式。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
保留 | 保留 | Will Retain | Will QoS | Will 标志 | Clean Start | 保留 | ||
x | x | x | x | x | x | x |
在协议的当前版本中没有使用这个字节的位 7、6 和 0。保留它们供将来使用。
位置:Connect 标志字节的第 2 位。
Will 消息定义当代理与客户机进行通信期间遇到 I/O 错误或客户机未能在保持活动计时器调度表之内进行通信时,代理代表客户机发布的消息。发送 Will 消息不是由代理从客户机接收到 DISCONNECT 消息触发的。
如果设置了 Will 标志,则 Will QoS 和 Will Retain 字段必须出现在 Connect 标志字节中,且 Will Topic 和 Will Message 字段必须出现在有效内容中。
下表中显示了 Will 标志的格式。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
保留 | 保留 | Will Retain | Will QoS | Will 标志 | Clean Start | 保留 | ||
x | x | x | x | x | x | x |
在协议的当前版本中没有使用这个字节的位 7、6 和 0。保留它们供将来使用。
位置:Connect 标志字节的第 4 和 3 位。
连接客户机在 Will 消息(此消息当发生客户机偶然断开连接事件时发送)的 Will QoS 字段中指定 QoS 级别。Will 消息在 CONNECT 消息的有效内容中定义。
如果设置了 Will 标志,则 Will QoS 字段是强制性的,否则将忽略它的值。
Will QoS 的值为 0 (0x00)、1 (0x01) 或 2 (0x02)。下表中显示了 Will QoS 标志。
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
保留 | 保留 | Will Retain | Will QoS | Will 标志 | Clean Start | 保留 | ||
x | x | x | 1 | x | x |
在协议的当前版本中没有使用这个字节的位 7、6 和 0。保留它们供将来使用。