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

标签 java jms activemq messaging stomp

我正在使用来自第三方消息代理的以下代码来使用消息源。我们使用 STOMP协议(protocol)和代码是使用 activemq-all 开发的图书馆。我注意到连接偶尔会挂起(每 1-2 周没有任何 Feed 后)。所以我想使用STOMP协议(protocol)的心跳功能所以我添加了heart-beat stompConnection 的 header 如下所示:

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 客户端,效果会好得多。使用此客户端跟踪心跳,您需要下降到套接字级别并直接跟踪传入的字节。

关于java - 使用 java 和 activemq-all 库进行 STOMP 心跳跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53432112/

相关文章:

java - com.android.volley.NoConnectionError : java. io.IOException:流的意外结束

java - org.springframework.web.client.HttpClientErrorException : 400 Bad Request for PUT

java - IBM MQ 监听器服务 - onMessage 未触发

java - ActiveMq:超过允许的最大客户端连接数

apache-camel - 如何处理 JMS 重新传递到我的 Camel Route,但仍然允许消息删除

Java - Spring MVC - 从表单提交自动填充对象?

Java IndexOutOfBoundsException 读取数学表达式时出错

java - 运行多个 Spring Boot 测试时,@MockBean 在 JMS 监听器中使用不同的实例

java - 如何使用共享数据库(JPA)同步多个客户端?

java - 使用 jms spring 和 activemq 队列的聊天应用程序