new Agent([options])
曆史
| 版本 | 變化 |
|---|---|
| v15.6.0、v14.17.0 | 將默認調度從 'fifo' 更改為 'lifo'。 |
| v14.5.0、v12.20.0 | 添加 |
| v14.5.0、v12.19.0 | 將 |
| v0.3.4 | 添加於:v0.3.4 |
參數
options<Object>要在代理上設置的一組可配置選項。可以有以下字段:keepAlive<boolean> 即使沒有未完成的請求,也要保留套接字,這樣它們就可以用於將來的請求,而無需重新建立 TCP 連接。不要與Connection標頭的keep-alive值混淆。Connection: keep-alive標頭在使用代理時始終發送,除非明確指定Connection標頭或keepAlive和maxSockets選項分別設置為false和Infinity,在這種情況下為Connection: close將會被使用。 默認:false。keepAliveMsecs<number> 使用keepAlive選項時,為 TCP Keep-Alive 數據包指定 initial delay。當keepAlive選項為false或undefined時忽略。 默認: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);
相關用法
- Node.js new AsyncResource(type[, options])用法及代碼示例
- Node.js new assert.AssertionError(options)用法及代碼示例
- Node.js new stream.Duplex(options)用法及代碼示例
- Node.js new stream.Readable([options])用法及代碼示例
- Node.js new Console(options)用法及代碼示例
- Node.js new URLSearchParams(obj)用法及代碼示例
- Node.js new crypto.Certificate()用法及代碼示例
- Node.js new stream.Writable([options])用法及代碼示例
- Node.js new URLSearchParams(iterable)用法及代碼示例
- Node.js new vm.SourceTextModule(code[, options])用法及代碼示例
- Node.js new stream.Transform([options])用法及代碼示例
- Node.js new PerformanceObserver(callback)用法及代碼示例
- Node.js new URL(input[, base])用法及代碼示例
- Node.js new URLSearchParams(string)用法及代碼示例
- Node.js new assert.CallTracker()用法及代碼示例
- Node.js net.isIP(input)用法及代碼示例
- Node.js net.createConnection(options[, connectListener])用法及代碼示例
- Node.js net.isIPv6(input)用法及代碼示例
- Node.js net.Server.address()用法及代碼示例
- Node.js net.createServer([options][, connectionListener])用法及代碼示例
- Node.js net.Server.listen()用法及代碼示例
- Node.js net.Socket.setTimeout(timeout[, callback])用法及代碼示例
- Node.js net.BlockList.check(address[, type])用法及代碼示例
- Node.js net.isIPv4(input)用法及代碼示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 new Agent([options])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
