消息过期间隔未生效

Windows 版本: Windows 11 专业版 24H2
NanoMQ 版本: nanomq-0.23.6-windows-x86_64
NanoMQ 配置: 默认配置
MQTTX 版本: v1.11.1
测试例程: 消息过期间隔介绍与示例 | MQTT 5.0 特性详解

期望结果:


实际结果:


问题描述:

  1. 消息过期间隔未生效,实际结果中 5 秒后仍然能够收到过期消息;
  2. 消息过期时间不更新,不会显示剩下的过期时间;
  3. QoS 0 订阅者无法收到消息,只有 QoS 1/2 信息可以使用消息过期间隔。
    猜测对于 QoS 0 消息,Broker 通常不进行排队存储,所以消息过期间隔的机制(即在队列中存储一段时间后丢弃)没有应用,然而使用 EMQX 公共服务器没有这个问题;
  4. 实际结果中,sub 上线后过了很久才接收到过期间隔消息。