如何在Paho中获取最后五个消息?

时间:2019-01-10 09:52:26

标签: javascript html web mqtt paho

我使用Paho创建Javascript MQTT Web应用程序。 客户端仅收到最近发送给它的最后一条消息,但是每次打开/刷新网页时,我都需要最后五条消息。 为此有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

MQTT不能这样工作。

这里需要考虑很多因素。

  1. 保留的邮件。听起来您正在接收的消息的标题中保留了保留位。这意味着代理将挂接到最后一个消息,该消息在发布的任何主题上都设置了该位,然后当客户端订阅该主题时,它将始终在所有新消息到达之前将最后一条消息传递给客户端。这只是一条消息,没有更多的消息。

  2. 消息队列。如果客户端以大于QOS 0的价格订阅主题,然后断开连接。当clean_session标志设置为false时,如果重新连接并且客户端重新订阅了相同的主题,则代理将传递客户端脱机时发送给该主题的所有消息。同样,这将是所有错过的消息,而不仅仅是最后5条消息。

就像@Weedoze在其评论中提到的那样,一种可能的解决方案是让另一个客户端订阅相同的主题,并且每当发布一条消息时,使用该消息来更新包含最后5条消息的一条消息,则需要发布到单独的主题,并将保留位设置为true。然后,客户可以订阅“历史”主题和“实时”主题。