当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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