我有用户http.request
用于连接到nodejs中的另一台服务器。不幸的是,服务器在某些情况下会有延迟响应。所以我想在一段时间后关闭请求。
我找到了以下代码,但是如果目标服务器无法访问或者尚未建立连接,则会发生此紧密连接。
req.on('socket', function (socket) {
socket.setTimeout(myTimeout);
socket.on('timeout', function() {
req.abort();
});
});
我想要的是关闭连接,例如2秒后数据是否来临。
有没有人有任何想法?
答案 0 :(得分:1)
我真的不知道您使用的套接字库,也许它有一些现成且很好的解决方案,但只使用setTimeout
函数看起来很简单:
req.on('socket', function (socket) {
setTimeout(function() {
// maybe some additional condition here
// or recursive call if you want to wait 2 more seconds
// or whatever else
// but if you want to just abort...
req.abort();
}, 2000);
});
同样,这可能看起来像是一种解决方法,但根据您的要求,它肯定应该足够了。