如何防止“错误:连接ECONNREFUSED”

时间:2015-03-30 07:18:17

标签: javascript node.js

我当前在使用node.js编写的TS3查询机器人上工作。 我添加了一个自动重新连接,但我现在有一个问题,如果服务器脱机,机器人崩溃,出现以下错误:

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);

与node-ts api一起使用 - > https://github.com/nikeee/node-ts

我已添加以下事件:

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

uncaughtException没有被触发,错误也没有防止崩溃。

如何防止它崩溃?

编辑:它是async btw。

1 个答案:

答案 0 :(得分:0)

您需要捕获进程上的UncaughtException而不是ts3对象。

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

可以在here上找到有关处理例外的更多信息。

更新:

cl也有自己的失败承诺。要像这样实现:

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