在nodejs中一段时间​​后强制关闭连接

Force a connection to be closed after a period in nodejs

我有用户 http.request 用于连接到 nodejs 中的另一个服务器。不幸的是,服务器在某些情况下会延迟响应。所以我想在一段时间后关闭请求。 我找到了以下代码,但如果无法访问目标服务器或尚未建立连接,则会关闭连接。

req.on('socket', function (socket) {
    socket.setTimeout(myTimeout);  
    socket.on('timeout', function() {
        req.abort();
    });
});

我想要的是在例如 2 秒后关闭连接,无论是否有数据。

有人知道吗?

我不太了解你使用的套接字库,也许它也有一些现成的很好的解决方案,但使用 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);
});

同样,这看起来像是一种解决方法,但根据您的要求,我了解到这绝对应该足够了。