Node.js http.globalAgent 属性

2025 年 2 月 20 日 | 阅读 4 分钟

在本文中,我们将讨论 Node.js 中的 http.globalAgent() 属性,包括其用法和示例。

Node.js 中的 http.globalAgent() 属性是什么?

'http.globalAgent' 是 Node.js 中的一个属性。它存在于 HTTP 模块中。此属性用于管理和优化 http 请求的数量。'http.Global agent' 是 http 的默认实例或对象。该属性的主要作用是管理所有 Http 请求的网络连接。Agent 类用于连接池和使用 TCP 连接。

该属性的一些主要功能是连接池,用于重用现有连接,以及并发控制,用于在单个主机上同时控制多个连接,从而使资源利用更有效。此代理可以保持连接处于活动状态并提高性能。开发人员可以创建自己的代理,并进行适当的配置以最适合他们的应用程序。

http.globalAgent 属性的用法

它从 http 模块导入 http,并从 http 中解构出全局代理属性。

此属性用于指定每个主机允许的最大并发套接字数量。

它启用和禁用,这使得连接可以用于多个请求。

它将延迟设置为 1000 毫秒,即一秒。

它指定了应该打开多少个套接字,并且是空闲可供重用的。

它为不活动的套接字设置超时时间。

示例 1

让我们看一个简单的程序来说明 Node.js 中 http.globalAgent() 属性的用法。

输出

Node.js http.globalAgent Property

说明

程序开始时导入 http 模块,这是 Node.js 中的一个默认模块,并从模块中解构出全局代理。之后,通过为全局代理属性的实例分配适当的值来手动调整全局代理的一些属性。

在此程序中,globalAgent 将最大套接字数设置为 10。它启用 http 的 keep-alive 功能,并设置发送 TCP keep-alive 数据包的初始延迟。它指定最大空闲套接字数为 5,并在一定超时后使套接字处于非活动状态。之后,所有设置都将被记录到控制台。

接下来,编写一个函数来发出 Http 请求,其中在 get 方法中接收数据块,并记录收到的响应。此 makeRequest 函数接受一个 URL 来执行 get 请求。之后,它为当前全局代理指定代理。

使用 forEach 循环遍历所有 url,并使用特定 url 调用 makeRequest 函数。之后,将记录全局代理的当前状态,即打开的套接字数量、待处理请求的数量以及空闲套接字的数量。

示例 2

让我们看另一个简单的程序来说明 Node.js 中 http.globalAgent() 属性的用法。

输出

Node.js http.globalAgent Property

说明

上述应用程序将从公共 API 获取一个随机笑话。它通过设置环境并导入必要的模块开始。之后,它使用 'fetchJoke()' 函数从 API 获取笑话,该函数是具有给定 API URL 的 get 请求。之后,它会每 60 秒定期更新笑话数据。它创建一个 HTTP 服务器,该服务器侦听传入的请求并响应最新的笑话。此服务器将侦听指定的端口。