Как проверить доступность сокетного соединения или нет в nodejs stompit - PullRequest
0 голосов
/ 01 мая 2018

Я использовал модуль stompit для подключения activeMQ в узле js.

Моя проблема: невозможно определить, подключен ли брокер или нет в stompit.ConnectFailover

Вот мой код:

var stompit = require('stompit')

var connectionManager = new stompit.ConnectFailover();

connectionManager.addServer({
  'host': 'localhost',
  'port': 61623,
  'connectHeaders':{
    ...
  }
});

var channel = new stompit.Channel(connectionManager);

var subscribeHeaders = {
    'destination': '/queue/test',
    'ack': 'client'
};


channel.subscribe(subscribeHeaders, function(error, message){
    if (error) {
        console.log(error);
        return;
    }  
});

//send . But not throw error , even broker is not started
//always trying to reconnect
sendDlQ(subscribeHeaders, 'Hello');


function sendDlQ(header, body){
     channel.send(header, body);
}

Всякий раз, когда вызывается метод send, всегда успех. Даже брокер не запущен.

Как определить, подключен брокер или нет перед отправкой?

1 Ответ

0 голосов
/ 21 июня 2018

Возможность подключения уже доступна из Channel.js из библиотеки stompit

чек if(channel._client != null && !channel._closed)

...