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])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。