如何使用activemq在连接上发送自定义标头

时间:2014-02-22 16:26:56

标签: 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中的client参数设置客户端ID?

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

1 个答案:

答案 0 :(得分:2)

要创建持久订阅,您需要在STOMP框架上设置客户端ID,并在每次连接时使用相同的ID。然后,您需要在订阅时设置持久订阅名称,因为您已经完成了。

请参阅ActiveMQ Stomp Documentation

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

中的testDurableUnsub