5

http リクエストにタイムアウトを設定するには、2 つのオプションがあります。それらの違いについてはよくわかりません。

最初のものは次のとおりです。

req.setTimeout(2000,function () {
  req.abort();
  console.log("timeout");
  self.emit('pass',message);
});

2 つ目は次のとおりです。

req.on('socket', function (socket) {
  socket.setTimeout(2000);  
  socket.on('timeout', function() {
      req.abort();
      self.emit('pass',message);
  });
}
4

1 に答える 1

13

socket.setTimeoutソケットのタイムアウトを設定します。たとえば、HTTP Keep-Alive を実装します。

request.setTimeoutsocket.setTimeoutは、ソケットがリクエストに割り当てられて接続されるとすぐに、 を内部的に呼び出します。これについては、ドキュメントに記載されています。

したがって、違いはなく、どちらに進むかを選択できます。もちろん、すでにリクエストが手元にある場合はsetTimeout、基礎となるソケットを探すのではなく、リクエストの機能に固執します。

于 2013-02-06T11:21:37.877 に答える