节点.js套接字连接的超时更低

Lower timeout for Node.js socket connection

本文关键字:超时 连接 js 套接字 节点      更新时间:2023-09-26

我想使用 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 函数,但要么它没有我认为应该做的,要么我用错了。

为句柄超时添加以下行:

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

或:

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

文档:这里