保留消息收到多条数据

环境信息

  • EMQ X 版本:4.1.5
  • 操作系统及版本:linux
  • 其他

问题描述

客户端A发送消息到topic hello retain属性设置为true,QOS为2 客户端B订阅hello topic 客户端B的CleanSession设置为false
当客户端B断开连接 客户端A连续往hello发送多条消息 客户端B上线 同时收到A发送的消息
怎么在设置为保留消息的情况下只收到最新的一条数据 如果CleanSession设置为true 则每次上线都会收到上次的保留消息 怎么设置可以保证只收到一次并且是最新的消息

配置文件及日志

只能保证是最新的,但是无法保证是唯一的(因为broker不会记录设备的上一次离线时间,也就无法判断哪一条消息是在离线之后发送的,只能按照协议将 retain 消息发出来)。这个只能从业务上作区分,比如A终端发布的 retain 消息,在 payload 中带一个时间戳或递增的业务编号,B 终端判断一下时间戳或者业务编号。
PS:希望你可以使用标准的标点符号,你的问题看起来比较费力