當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Node.js new Agent([options])用法及代碼示例


new Agent([options])

曆史
版本變化
v15.6.0、v14.17.0

將默認調度從 'fifo' 更改為 'lifo'。

v14.5.0、v12.20.0

添加scheduling 選項以指定空閑套接字調度策略。

v14.5.0、v12.19.0

maxTotalSockets 選項添加到代理構造函數。

v0.3.4

添加於:v0.3.4


參數
  • options <Object>要在代理上設置的一組可配置選項。可以有以下字段:
    • keepAlive <boolean> 即使沒有未完成的請求,也要保留套接字,這樣它們就可以用於將來的請求,而無需重新建立 TCP 連接。不要與Connection 標頭的keep-alive 值混淆。 Connection: keep-alive 標頭在使用代理時始終發送,除非明確指定 Connection 標頭或 keepAlivemaxSockets 選項分別設置為 falseInfinity ,在這種情況下為 Connection: close 將會被使用。 默認: false
    • keepAliveMsecs <number> 使用 keepAlive 選項時,為 TCP Keep-Alive 數據包指定 initial delay。當 keepAlive 選項為 falseundefined 時忽略。 默認: 1000
    • maxSockets <number> 每個主機允許的最大套接字數。如果同一主機打開多個並發連接,每個請求將使用新套接字,直到達到maxSockets 值。如果主機嘗試打開的連接數超過 maxSockets ,則額外的請求將進入待處理請求隊列,並在現有連接終止時進入活動連接狀態。這確保在任何時間點,來自給定主機的最多有 maxSockets 活動連接。 默認: Infinity
    • maxTotalSockets <number> 所有主機總共允許的最大套接字數。每個請求都將使用一個新的套接字,直到達到最大值。 默認: Infinity
    • maxFreeSockets <number> 每個主機在空閑狀態下保持打開的最大套接字數。僅當 keepAlive 設置為 true 時才相關。 默認: 256
    • scheduling <string> 選擇下一個要使用的空閑套接字時應用的調度策略。它可以是 'fifo''lifo' 。兩種調度策略的主要區別在於'lifo'選擇最近使用的socket,而'fifo'選擇最近最少使用的socket。在每秒請求率較低的情況下,'lifo' 調度將降低選擇可能由於不活動而被服務器關閉的套接字的風險。在每秒請求率較高的情況下,'fifo' 調度將最大化打開套接字的數量,而'lifo' 調度將使其盡可能低。 默認: 'lifo'
    • timeout <number> 套接字超時(以毫秒為單位)。這將在創建套接字時設置超時。

還支持 socket.connect() 中的options

http.request() 使用的默認 http.globalAgent 將所有這些值設置為各自的默認值。

要配置其中任何一個,必須創建自定義 http.Agent 實例。

const http = require('node:http');
const keepAliveAgent = new http.Agent({ keepAlive: true });
options.agent = keepAliveAgent;
http.request(options, onResponseCallback);

相關用法


注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 new Agent([options])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。