发布方持续发布QOS1消息,多个订阅者以$queue共享订阅一个主题也是QOS1,其中一个订阅者disconnect下线,这个下线订阅者的消息如何能被其他订阅者接收呢

环境信息

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

问题描述

发布方持续发布QOS1消息,多个订阅者以$queue共享订阅一个主题也是QOS1,其中一个订阅者disconnect下线,这个下线订阅者的消息如何能被其他订阅者接收呢

配置文件及日志

重新组织一下你的问题:
“其中一个共享订阅者下线,发送给这个订阅者的消息会被怎样处理?如果将会发送给这个共享订阅者,由于它已经下线,消息是否会由其他共享订阅者处理,以及怎样处理?”

共享订阅在 MQTT 服务端的范围内定义,而不是在(订阅者)的会话中定义。也就是说,由服务端根据配置的共享订阅策略,来决定将消息发向哪个共享订阅者。这个决策是由服务端决定的,而不是针对共享订阅者的会话。
所以当某个共享订阅者下线后,服务端就不会将共享订阅消息发送给这个共享订阅者。所有消息与不在线的这个订阅者无关。而具体发送给哪一个共享订阅者将由服务端根据共享订阅策略决定。
更详细的内容建议再深入研究一下 MQTT 协议规范。