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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Paho中获取最后五条消息?相关的知识,希望对你有一定的参考价值。

我使用Paho创建javascript MQTT Web应用程序。客户端只接收最近发送给它的最后一条消息,但每次打开/刷新网页时我都需要最后五条消息。有没有针对这个目的的解决方案?

答案

MQTT不能以这种方式工作。

这里需要涉及许多因素。

  1. 保留的消息。听起来您收到的消息在标题集中保留了位。这意味着代理将挂在最后一条消息上,并在其发布的任何主题上设置该位,然后当客户端订阅该主题时,它将始终在任何新消息到达之前将最后一条消息传递给客户端。这只是一条消息,没有办法拥有更多。
  2. 消息队列。如果客户端订阅的主题大于QOS 0,则断开连接。只要clean_session标志设置为false并且客户端重新订阅同一主题,它就会重新连接,然后代理将在客户端脱机时传递发送到主题的任何消息。这将是所有错过的消息,而不仅仅是最后5个消息。

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

以上是关于如何在Paho中获取最后五条消息?的主要内容,如果未能解决你的问题,请参考以下文章

paho mqtt回调python中的不同类模块

如何获取某个用户发送的最后 1000 条消息?

如何在核心数据iOS中获取每个实体的最后一个条目

如何使用 smack 和 openfire 获取 IOS 中每个聊天会话的最后一条消息?

如何获取特定频道 discordjs 的最后一条消息

嵌入式Linux应用开发温湿度监控系统——学习paho mqtt的基本操作