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