【已解决】小白请教一个createConnection 如何自定义timeout的问题
小白请假一个问题
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