降低Node.js套接字连接的超时时间

时间:2014-11-13 06:59:51

标签: javascript node.js sockets

我想验证使用Node.js是否可以访问某个端口。基本上,我所做的是编写以下程序:

var net = require('net');

var client = new net.Socket();

client.connect(3003, 'localhost');

client.on('error', function (err) {
  console.log(err);
  process.exit();
});

client.once('connect', function () {
  console.log('Connected!');
  process.exit();
});

到目前为止,这几乎都很好。我只有一件事不满意,那就是超时处理。在本地它按预期工作,但当我尝试

client.connect(81, 'www.google.de');

直到我超时才需要两分钟。为什么会发生这种情况,我该怎么办呢?

PS:我知道Node.js中的套接字有setTimeout函数,但要么它不符合我的想法,要么我错了。

1 个答案:

答案 0 :(得分:2)

为句柄超时添加以下行:

client.setTimeout(1000);
client.on('timeout', function(){
  client.end();
})'

或:

client.setTimeout(1000, function(){
  client.end();
});

文档:here