当订阅者应用程序关闭时,emqttd无法获取同一主题中的所有消息



仅在订阅者应用程序重新启动时接收最后保留的消息。

操作系统:WindowsEMQ Broker版本:2.3.10Eclipse paho

当我发布10条关于同一主题的消息时,由于某种原因,订阅应用程序崩溃,在某个时间子应用程序重新启动后,我只收到最后一条保留消息,并丢失了所有其他数据,这是一个大问题。

我在pub和sub-上都设置了保留标志为true,干净会话标志为false,Qos为1

有人能帮上忙吗。我是否缺少任何配置,或者Erlang代理的行为就像只获取最后一条保留消息。

首先,MQTT代理将只保存发布到主题的最后一条消息,并为给定主题保留标志。保留的消息与脱机客户端的高QOS消息队列无关。有关保留消息的更多详细信息,我建议您查看HiveMQ 的这篇文章

至于为脱机客户端排队消息,您需要满足以下所有要点。

  1. 清除会话标志必须设置为false
  2. 客户端ID在连接之间必须保持不变
  3. 该消息必须以QOS>0
  4. 客户端必须订阅具有QOS>0

有关持久性和排队消息的更多详细信息,请参阅另一篇HiveMQ文章。

最新更新