java - 我可以存储和读取 STOMP 队列/主题中的消息吗?

标签 java jms messaging hornetq stomp

我已经设置了一个简单的 Spring 应用程序,它连接到正在运行的 HornetQ 实例并将一系列消息发送到预定义的队列。问题是客户端(HornetQ 附带的简单 websocket 客户端)只有在已经订阅了队列的情况下才会接收消息。 有没有办法将消息存储在 STOMP 队列中,然后在与消费者连接时读取它们?

我浏览了 HornetQ 和 Stomp 文档,但由于我真的不知道我在寻找什么,所以我只找到了“retain” header ,该 header 似乎是 ActiveMQ 专有的,并且只保留主题中的最后一条消息。

最佳答案

HornetQ 似乎支持与 ActiveMQ 相同的 header ,但在文档中没有提及。 因此,这是我必须指定的 header :

destination:<my-queue>
id:<some-id>
durable:true //this enables durability
auto-delete:false //this ensures queue won't get deleted

将这些 header 传递给 StompSession session.send(),它的工作方式就像一个魅力。消费者端无需进行任何额外更改。

关于java - 我可以存储和读取 STOMP 队列/主题中的消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34435449/

相关文章:

java - 从 TypeMirror 获取数组的类类型

server - 桌面应用程序的客户端/服务器状态同步

google-chrome-extension - 未捕获错误的原因 : Attempting to use a disconnected port object

java - 关键的 RabbitMQ 方法参数

java - AppEngine 数据存储 : "Object with id ... is managed by a different Object Manager"

java - 使用灯箱画廊

java - 制作 MacOS 守护程序时我可以选择哪些语言?

oracle - JMS 设置生存时间

java - sessionTransacted 和 JmsTransactionManager 的区别

java - 如何检查activemq中是否创建了临时队列?