【问题标题】:With Mosquitto broker, how to subscribe to a topic and get any message just once使用 Mosquitto 代理,如何订阅主题并只获取一次消息
【发布时间】:2016-03-09 16:02:34
【问题描述】:

我确定这是新手问题,但是使用 Mosquitto 如何订阅保留的消息并保证我只收到一次消息?我有一个基于 Paho 的 java 订阅者,在测试中我注意到的是,如果我的订阅者被关闭,然后重新启动,它会提取一些它在关闭之前收到的相同消息。 (通常它会永远保持不变,但会发生一些事情。)订阅者只能获得每条消息一次,这一点至关重要。 (对于我的用例,只有 1 个订阅者。)

Mosquitto 中是否有内置的东西可以提供这种机制,或者这是我必须在我的数据架构和检索过程中构建的东西?

我看到有一种按主题删除消息的方法 (https://lists.launchpad.net/mosquitto-users/msg00067.html),但现在我的主题非常通用 [公司]/[MAC 地址]/[主题 x],并且可能有两条单独的消息具有相同主题的队列,我假设如果我向给定主题发送一条空消息,我最终会删除该主题的所有消息。

提前感谢您对此提供的任何帮助。

【问题讨论】:

    标签: mosquitto


    【解决方案1】:

    将 QoS 级别设置为 2。

    QoS 级别 2: 一次交货。 这是最高级别,在控制消息和本地存储消息的需要方面也产生了最大的开销。 Exactly-once 是至少一次和最多一次交付保证的组合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 2020-12-22
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      相关资源
      最近更新 更多