Node.js http.request在120秒后完全失败

时间:2016-02-05 21:17:31

标签: node.js sockets tcp keep-alive

我知道server.timeout和socket的keepalive超时默认超时为120秒。但在我的情况下,我已经将http代理设置更改为170秒,并将socket.timeout和服务器超时更改为170秒。仍然收到错误ECONNRESET" socket hangup"。

以下是代理设置和套接字时间设置。

"proxy_agent": {
    "maxSockets" : 256,
    "maxFreeSockets" : 256,
    "keepAlive" : true,
    "keepAliveMsecs" : 170000,
    "keepAliveTimeout" : 15000,
    "timeout" : 170000
},

和套接字设置

var setupSocket = function(socket) {
    socket.setNoDelay(true);
    socket.setTimeout(170000);
    socket.server.timeout = 170000;
    socket.setKeepAlive(true,0);
    return socket;
};

下面是调试器屏幕截图,显示我已正确设置的所有自定义值。

enter image description here

1 个答案:

答案 0 :(得分:0)

最后我遇到了问题。 http('连接')和https(' secureConnection')有两个单独的事件,因此仅对之前的http禁用套接字超时。所以所有https请求仍然在默认的120秒时间内超时。因此,在禁用' secureConnection'事件,然后https请求实际工作,直到给定的请求超时。

注意:此问题仅适用于https,我最初无法识别哪个是解决问题的关键。谢谢。