req.setTimeout和socket.setTimeout有什么区别?
我有两个选项来设置我的http请求超时。 我不确定他们的区别。
首先是:
req.setTimeout(2000,function () { req.abort(); console.log("timeout"); self.emit('pass',message); });
第二个是:
req.on('socket', function (socket) { socket.setTimeout(2000); socket.on('timeout', function() { req.abort(); self.emit('pass',message); }); }
socket.setTimeout
设置套接字的超时,例如实现HTTP Keep-Alive。
request.setTimeout
在内部调用socket.setTimeout
,只要套接字已被分配给请求并已连接。 这在文档中有描述。
因此,这没什么区别,你可以select走哪条路。 当然,如果你已经有了一个请求,你可以坚持请求的setTimeout
函数,而不是挖掘底层套接字。