【已解决】小白请教一个createConnection 如何自定义timeout的问题
发布于 2年前 作者 ywencn 719 次浏览

小白请假一个问题

var net = require('net');
var client = net.createConnection(1234, "12.24.212.61");
  client.on('connect', function () {
    console.log('Connected');
  });
  client.on('error', function(e) {
    console.log('client error');
  });
  client.on('end', function() {
    console.log('client disconnected');
  });

大概是这样,如果那个ip地址存在,但是没有监听1234端口,我就可以马上得到一个返回说错误,但是如果那个IP地址根本不存在(比如服务器没开机),那大概会卡在这里30秒才会告诉我timeout, 我查阅了文档这里也不支持timeout设置。

于是我尝试了js自己的settimeout,

setTimeout(function() {
    console.log('Request Timeout.');
    client.end()
  }, 2000);

这样在2秒的时候,我能看到Request Timeout,但是进程仍然卡住不动,不能往下走。 而且我不能用process.end之类的来结束进程,因为我这里会出去一堆请求,要分别处理所以不能马上结束。 不知道我表达得是否清楚? 我希望的是如果IP地址不存在,那2秒后告诉我一个错误,然后结束这个connection

回到顶部