使用Mosquitto代理,如何订阅主题并获取任何消息一次

时间:2016-03-01 16:00:34

标签: mosquitto

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

Mosquitto中是否有内置提供此机制的东西,还是我必须构建到我的数据模式和检索过程中的东西?

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

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

将QoS级别设置为2。

QoS水平-2: 完全一次交付。 这是最高级别,也会引起控制消息的最大限制,并且需要本地存储消息。 完全一次是至少一次和最多一次交付保证的组合。