req.setTimeout和socket.setTimeout有什么区别?

5

我可以使用两种方式为我的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);
  });
}
1个回答

13

socket.setTimeout 设置套接字的超时时间,例如用于实现HTTP Keep-Alive。

request.setTimeout 在分配套接字给请求且连接成功后会调用socket.setTimeout。这在文档中有说明。

因此,没有任何区别,可以选择任意一种方式。当然,如果你已经有了一个请求,则应该使用请求的 setTimeout 函数而不是搜索底层套接字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接