2016-08-22 71 views
0

我不确定这是否可行。如果我在一段时间内在一个主题下设置了一些消息,我可以稍后再抓住所有消息吗?在MQTT主题中保留一系列消息主题

我有一个MQTT Broker(Mosquitto)已经用于我的服务之间的通信,但现在我还需要一些存储器来处理几条消息,理想情况下可以保留最近24小时的消息并能够在稍后将它们取出。

回答

1

消息持久性仅适用于已订阅但当前已断开连接的客户端,以及在cleanSession标志设置为false时重新连接时如此。在这种情况下,所有在客户端断开连接时发布的消息。

您不能使用MQTT代理来存储任意数量的消息并稍后检索它们。如果客户端已连接,则所有收到订阅主题的消息都将尽快发送。

你都想的日志消息后,你将不得不单独实现这一点,有很多的存储可获得的数据库中

+0

感谢邮件应用的例子。我怀疑是这种情况,但我认为我会仔细检查,因为我已经在那里了 – dave

+0

我的理解是,如果两个连续的消息发布给同一主题的经纪人,那么第二个_replaces_第一个 - 经纪人仅保留第二位。如果您描述的用户已连接,他们是否会收到这两条消息?如果他们断开连接并重新连接,他们只会收到最近的两条消息? –

+1

代理将始终发送带有保留位集的最后一条消息,但也会如上所述发送**所有**排队消息,因此它将接收两个消息(不一定按顺序,因为保留的消息可能先发送) – hardillb