消息过期时间到客户端依然能收到消息

使用emqx版本是开源版本5.5

目前存在一个现象:设备断网后,尚未到达心跳超时时间时,推送一条带有消息失效时间的 QoS1 消息,EMQX 会不断重试发送该消息,直到设备被判定离线。若消息的失效时间已过,设备重新上线后仍然能够接收到这条过期消息

详细步骤如下描述:

  • 客户端连接与认证通过,客户端keepalive为120s。
  • 订阅 TEST/123456,QoS: 1。
  • 客户端直接断开网络,不是显示调用discconnect。
  • 发布一个带有消息失效时间(失效时间600s)的QoS1的消息。
  • 客户端因 keepalive 超时 断开连接,期间emqx会不断进行publish。
  • 等待消息过期后,客户端重新连接与重订阅(800s左右),仍然会收到过期消息。

日志追踪日志详见附件
日志追踪.zip (1.3 KB)

谢谢:pray:,会下周找同事看看这个问题。