代码之家  ›  专栏  ›  技术社区  ›  Vasu

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

  •  0
  • Vasu  · 技术社区  · 6 年前

    我正在使用来自第三方消息代理的以下代码使用消息提要。我们使用 STOMP 协议和代码是使用 activemq-all 图书馆我注意到这种连接偶尔会挂起(每1-2周不进食一次)。所以我想使用STOMP协议的心跳功能,所以我添加了 heart-beat 标题为 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客户端之上)正在接收来自发送方的心跳?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Tim Bish    6 年前

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