我已经设置了一个简单的 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/