Отслеживание сердечных сокращений STOMP с использованием библиотеки java и activemq-all - PullRequest
0 голосов
/ 22 ноября 2018

Я использую фид сообщений, используя приведенный ниже код, от стороннего брокера сообщений.Мы используем протокол 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-клиента) получает сердечные сокращения от отправителя?

1 Ответ

0 голосов
/ 22 ноября 2018

Эта библиотека предназначена только для поддержки тестов и не поддерживает другие проблемы, кроме тех, которые влияют на тесты ActiveMQ.Использование его рискованно и не рекомендуется для работы на любом уровне производства.Вам было бы гораздо лучше использовать Stomp-клиент с открытым исходным кодом и реальной поддержкой.Трек сердца бьется с этим клиентом, вам нужно будет перейти на уровень сокета и напрямую отслеживать входящие байты.

...