当前位置: 首页 > 知识库问答 >
问题:

Mosquitto服务器上Paho MQTT客户端缓存消息的意外行为

杨雪松
2023-03-14

我确实在我的应用程序中使用PAHO C客户机库。我确实订阅了MQTTAsync_subscribe()和QoS设置为1的主题。根据我的理解,1的意思是,消息至少被发送到客户端一次。

也许有人能帮助我理解为什么会发生这种情况,或者如何克服这种情况?

共有1个答案

钱峻
2023-03-14

当客户端重新连接时,所有排队的消息都应该批量传递。

它们不会以相同的时间偏移量排队和交付,mosquitto甚至不会保留到达时间以进行时间偏移量延迟交付(MQTT v5消息保留到达时间,因为它们现在可以具有TTL值,但这只用于从队列中删除过期的消息,而不是延迟延迟交付)。

 类似资料:
  • 问题内容: 这实际上是我在这里的第一篇文章,一段时间以来我一直在试图弄清楚这一点,但是我终于打电话给该旗帜,并将尝试寻求有关此主题的一些帮助。 因此,我有一个客户端和一个服务器,它们是根据回显客户端/服务器和安全聊天客户端/服务器建模的。我对聊天的SSL部分和使用回显仅对确保我在客户端/服务器之间收到响应不感兴趣。我将在这篇文章的底部添加所有相关代码。我现在遇到的问题是,在客户端连接后,我可以从服

  • 我正在通过Spring集成设置一个TCP客户端,以字符串作为有效负载发送消息,不期望返回。也许序列化器/反序列化器不能正常工作?对不起,我正在学习Spring集成。 我可以通过oepnssl连接到外部TCP服务器: 我需要发送的命令是“sessions.list\n。\n”。 现在我构建了一个试图连接到服务器的tcp客户端: spring上下文。xml 因此,在这个repo之后,字符串应该转换为字

  • 问题内容: 所以现在,我正在制作一个基于客户端服务器应用程序的多线程。在服务器端,我为接受的每个连接创建了一个线程。 在线程类中,我创建了一种将命令发送到客户端的方法。我只想要的是如何将参数发送到所有正在运行的客户端?为简单起见,我只想使此服务器向所有连接的客户端发送消息。 我已经阅读了这篇文章,并从此链接中找到方法。但是,当我尝试使用自己的代码时,中没有类似的方法。 好的,这是我的服务器和线程示

  • 问题内容: 我正在尝试用两个客户端实现一个系统,其中一个客户端发送一条消息,而另一个客户端将接收该消息。下图将以更直观的方式对其进行解释: 因此,客户端1将消息发送到服务器(此工作正常),服务器接收到“推送”消息并发出应由客户端2接收的“弹出”消息。这里的问题是客户端2从未收到“流行”消息。:( 这是所有代码。 SERVER.JS 客户1(aka mobile.html) 客户2(aka web.

  • 问题内容: 我将实现类似于Facebook通知和此网站的内容(StackOverflow的通知会通知我们是否有人为我们的问题写评论/答案等)。请注意,用户将使用我的应用程序作为网站而不是移动应用程序。 我遇到以下获取结果的答案,但我需要推送结果而不是获取结果。 根据建议,我在实体类中创建了一个简单方法,并向其中添加了@PostPersist,但此方法不起作用,因此基于此答案,我添加了persist

  • 当我提交表单时,我在浏览器控制台中看到“emit”消息,所以我知道表单提交事件正在触发,但我没有在服务器上收到测试消息。客户端或服务器端似乎什么也没发生,“socket.emit”函数似乎什么也没做。 我做错了什么?