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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。