我正在尝试使用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)
答案 0 :(得分:2)
要创建持久订阅,您需要在STOMP框架上设置客户端ID,并在每次连接时使用相同的ID。然后,您需要在订阅时设置持久订阅名称,因为您已经完成了。
请参阅ActiveMQ Stomp Documentation。
您也可以在ActiveMQ Stomp单元测试中找到一些好的Stomp示例,请参阅StompTest.java
中的testDurableUnsub