📅  最后修改于: 2023-12-03 15:11:44.746000             🧑  作者: Mango
欢迎参加我们的 Node.js 测验,本次测验涵盖了一些常见的网络技术问题。本题为第一组中的第九个问题。
在 Node.js 中,http.Agent
类用于控制 HTTP(s) 连接池的行为。请简要介绍 http.Agent
的基本用法,并说明如何通过 maxSockets
属性控制连接池中的最大连接数。
http.Agent
类可以被用于管理和重用 HTTP(s) 客户端连接。当应用程序发起请求时,http.Agent
会检查是否有可用的连接,如果有则会将请求发送到该连接上,否则会新建一个连接。
要使用 http.Agent
,可以通过http.request
方法的 agent
参数来指定自定义的代理。如果在创建请求时没有指定代理,则 Node.js 会使用默认代理。
const http = require('http');
// 创建一个自定义的 http.Agent 对象
const agent = new http.Agent({
keepAlive: true, // 保持连接
maxSockets: 10 // 最大连接数为 10
});
// 发起请求并使用自定义的代理
http.request({
hostname: 'www.example.com',
port: 80,
path: '/',
method: 'GET',
agent: agent
}, function(res) {
// 处理响应
}).end();
在上面的代码中,我们通过创建一个自定义的 http.Agent
对象,并通过 maxSockets
属性将最大连接数设置为 10。之后,我们通过 http.request
方法发起请求并使用刚刚创建的代理对象。
可以通过 http.globalAgent
属性来访问 Node.js 的默认代理对象。
const http = require('http');
http.globalAgent.maxSockets = 10; // 将默认代理对象的最大连接数设置为 10
在上面的代码中,我们将默认代理对象的最大连接数设置为 10。
总结一下,http.Agent
类可以用于控制 HTTP(s) 连接池的行为。通过设置 maxSockets
属性,我们可以控制连接池中的最大连接数。默认代理对象可以通过 http.globalAgent
属性来访问。