java - 如何使用activemq在stomp连接上发送自定义 header

标签 java activemq stomp

我正在尝试使用 activemq 为我的 stomp 客户端设置持久订阅。 到目前为止,我已经设法添加 activemq.subscriptionName 来发送 SUBSCRIBE 帧:

HashMap<String, String> header = new HashMap<String,String>();
header.put("activemq.subscriptionName","unique-string-for-feed");
connection.subscribe("/topic/location", Stomp.Headers.Subscribe.AckModeValues.CLIENT, header);

但我不知道如何使用 CONNECT 框架来做到这一点,因为没有接受 HashMap 的方法。我是否只使用 StompConnection.class 中的客户端参数设置客户端 ID?

public void connect(java.lang.String username, java.lang.String password, java.lang.String client)

最佳答案

要创建持久订阅,您需要在 STOMP 框架上设置客户端 ID,并在每次连接时使用相同的 ID。然后,您需要在您的订阅上设置持久订阅名称,正如您已经制定的那样。

查看 ActiveMQ Stomp Documentation

您也可以在 ActiveMQ Stomp 单元测试中找到一些很好的 Stomp 示例,请参阅 StompTest.java 中的 testDurableUnsub

关于java - 如何使用activemq在stomp连接上发送自定义 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956995/

相关文章:

apache-flex - Tomcat/BlazeDS/ActiveMQ 断开连接问题

java - 能否以某种方式查看 AMQ 主题的内容?

ruby - 使用 ruby​​ 和 stomp 将消息写入 ActiveMQ

java - 生产代码中的 Spring SimpleMessageBroker

java - jdbc中的语句是否同步执行批处理

java - 使用java布局定义容器最小尺寸

java - 无法将值放入 Java Spring Boot 中的 SQL 语句中

ubuntu - ActiveMQs 不会在彼此之间复制消息

java - 带有 sockjs 和 stomp 客户端设计的 Spring websocket

java - jdk 1.8 String.equalsIgnoreCase 中的重复空检查