MQTT: Clean Session Flag

Clean Session Flag

控制 Session 的状态. (Session State)

Session State 用户确保在客户端和服务器之间的多个连接中可靠的传输消息。

Clean Session = 0


当 CleanSession = 0, 服务器必须复用和当前连接绑定的 Session 状态。

Session 用 Client Id 表示。

如果服务器没有于当前客户端关联的 Session 状态,那么它需要为当前连接创建一个新的 Session。

在客户后连接断开之后,服务器和客户端都需要保存当前 Session 的状态。

当一个连接断开后,服务器必须保存后续的和当前 Session 所订阅的主题匹配的所有 QoS 1 和 QoS 2 消息。这些信息作为 Session 状态的一部分保存下来。

服务器可以同时保存相应的 QoS 0 消息,但是这是一个可选的,不是必须的。


Clean Session = 1


当 CleanSession=1, 服务器和客户端需要抛弃之前的 Session 状态,重新创建一个 Session。

这个 Session 的一直持续到当前连接断开。

连接断开后,Session 状态需要被清空,不能在接下来的连接中复用。


Client Session State


  • 所有已经发送的 QoS 1 和 QoS 2 消息,并且还没有收到对应的 ACK 消息。
  • 所有已经发送的 QoS 2 消息,但是还没有被完全 ACK。(收到响应的 PUBCOMP 消息)

Server Session State


  • 是否有与当前客户端关联的 Session, 即使 Session 状态是空的
  • 客户端所有订阅的主题
  • 所有已经发送到客户端的 QoS 1 和 QoS 2 消息,并且这些消息还没有收到相应的 ACK 消息。
  • 所有等待被发送到客户端的 QoS 1 和 QoS 2 消息。
  • 从客户端收到的 QoS 2 消息,还没有完全 ACK。
  • 可选的, 等待被发送到客户端的 QoS 0 消息。

Retained message 不是 Session 状体的一部分。 即使 Session 结束了,也不能删除这些消息。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

VFSSoft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值