STOMP心跳跟踪使用java和activemq-all库



我正在使用来自第三方消息代理的以下代码使用消息源。我们使用STOMP协议,代码是使用activemq-all库开发的。我注意到连接偶尔会挂起(每隔1-2周没有任何订阅(。所以我想使用STOMP协议的心跳功能,所以我为stompConnection添加了心跳标头,如下所示:

StompConnection stompConnection = new StompConnection();
stompConnection.open(new Socket("ABC", 1234));
HashMap<String, String> headers = new HashMap<>();
headers.put("login", "abcd");
headers.put("passcode", "defghij");
headers.put("heart-beat", "0,10000");//heart-beat header newly added
stompConnection.connect(headers);
stompConnection.subscribe("topic1", "auto");
while(true) {
StompFrame stompMessage = stompConnection.receive(10000);
String messageBody = stompMessage.getBody();
//process messageBody here
}

现在我的问题是,有没有任何方法可以找到/跟踪我的应用程序(java客户端之上(正在接收来自发送者的心跳?

该库是一个仅支持测试的工具,不支持除影响ActiveMQ测试的问题之外的其他问题。使用它有风险,不建议用于任何生产级别的工作。你最好使用一个有实际支持的完整开源Stomp客户端。跟踪此客户端的心跳,您需要降到套接字级别并直接跟踪传入的字节。

最新更新