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

问题描述 投票:0回答:1

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

javascript html web mqtt paho
1个回答
1
投票

MQTT不能以这种方式工作。

这里需要涉及许多因素。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.