2015-03-30 2 views
4

Я работаю над ботсом запросов TS3, написанным в node.js. Я добавил автоматическое повторное подключение к нему, но у меня есть вопрос теперь, когда бот вылетает, если сервер находится в автономном режиме со следующей ошибкой:Как предотвратить «Ошибка: подключиться к ECONNREFUSED»

events.js:85 
    throw er; // Unhandled 'error' event 
     ^
Error: connect ECONNREFUSED 
    at exports._errnoException (util.js:746:11) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:983:19) 

линия, которая начинается соединение является следующее:

var cl = new ts3.TeamSpeakClient(config.serverIP); 

используется с узлом-ц апи в ->https://github.com/nikeee/node-ts

Я уже добавил следующие события:

cl.on('error', function(err){ 
    console.log("bla: " + err) 
}); 
cl.on('uncaughtException', function (err) { 
    console.log(err); 
}); 

uncaughtException не запускается, и ошибка не предотвращает сбой.

Как я могу предотвратить его сбой?

Редактировать: Это асинхронный кстати.

ответ

0

Вам нужно поймать UncaughtException в процессе, а не в объекте ts3.

process.on('uncaughtException', function (err) { 
    console.log(err); 
}) 

Подробнее об обработке исключений можно найти более here.

UPDATE:

сл имеет свою неудачу обещание, а также. Реализуется следующим образом:

cl.fail(function(err) { 
    console.log("An error occurred." + util.inspect(err)) 
}); 
+0

не является обесцененным процессом и работает только в местах синхронизации? – user2693017

+0

1. Ошибка при регистрации, но все еще сбой. 2. «fail» не определяется ошибка. Я забыл добавить, что это асинхронно. – SirWill

+0

@ user2693017: Он не устарел и может использоваться и сегодня, и он также не зависит от мест синхронизации. – V31

Смежные вопросы