La API HTTP de Node.js es de bajo nivel para que pueda admitir las aplicaciones HTTP. Para acceder y usar el servidor HTTP y el cliente, necesitamos llamarlos (mediante ‘ require(‘http’) ‘). Los encabezados de los mensajes HTTP se representan en formato JSON.
El nuevo método Agent({}) (agregado en v0.3.4) es una interfaz de programación de aplicaciones (API) incorporada del módulo ‘http’ en el que http.request() utiliza el agente global predeterminado que debería crear un http.Agent personalizado instancia.
Sintaxis:
new Agent({options})
Parámetros: esta función acepta un solo parámetro de objeto como se mencionó anteriormente y se describe a continuación:
opciones <Objeto> Son las opciones configurables que se pueden establecer en el agente .
- keepAlive <booleano> : el valor predeterminado establecido es falso . Aún conserva los sockets, ya sea que haya requests pendientes o no, por lo que podría usarse para futuras requests sin restablecer la conexión ( TCP ). La conexión de encabezado de mantenimiento se envía mientras se usa un agente, y se usa una conexión ‘ cerrada’ para cerrar la conexión.
- keepAliveMsecs < número > : el valor predeterminado establecido es falso. Denota el retraso inicial para los paquetes TCP Keep-Alive y si la opción keepAlive es falsa o indefinida, se ignora.
- maxSockets < número > : el valor predeterminado establecido es infinito. Permite el número máximo de sockets por host y hasta que se alcanza el máximo, cada solicitud utiliza un nuevo socket.
- maxTotalSockets <número> : el valor predeterminado establecido es infinito. Permite el número máximo de sockets para todos los hosts en total y hasta que se alcanza el máximo, cada solicitud utiliza un nuevo socket.
- maxFreeSockets < número > : el valor predeterminado establecido es 256. Para dejarlo abierto en un estado libre, utiliza la cantidad máxima de sockets y solo es relevante si keepAlive se establece en true .
- programación <string> : la programación predeterminada es FIFO. Es una estrategia de elegir el próximo enchufe libre para programar y usar. Es de dos tipos ‘ FIFO ‘ o ‘ LIFO ‘. ‘ LIFO ‘ ( Último en entrar, primero en salir ) selecciona el enchufe que se usó más recientemente, mientras que ‘FIFO’ ( Primero en entrar, primero en salir ) selecciona el enchufe que se usó menos recientemente.
- timeout < número > : cuenta el tiempo de espera del socket en milisegundos y establece el tiempo de espera cuando se crea el socket.
Los siguientes ejemplos ilustran el uso del nuevo método Agent({}) en Node.js.
Ejemplo 1: Nombre de archivo: index.js
// Node.js program to demonstrate the // new agent({}) method // Importing http module const http = require('http'); var agent = new http.Agent({}); // Creating new agent const aliveAgent = new http.Agent({ keepAlive: true, maxSockets: 0, maxSockets: 5, }); // Creating new agent var agent = new http.Agent({}); // Creating new connection var createConnection = aliveAgent.createConnection; // Creating new connection var createConnection = agent.createConnection; console.log('Connection successfully created...'); // Printing the connection console.log(createConnection); console.log('Connection successfully created...'); // Printing the connection console.log('Connection: ', createConnection);
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
Conexión creada con éxito…
[Función: conectar]
Conexión creada con éxito…
Conexión: [Función: conectar]
Otro módulo agentkeepalive encaja mejor compatible con Http, lo que facilita el manejo de requests. Para usar el módulo ‘ agentkeepalive’ , necesitamos instalar NPM (Node Package Manager) y lo siguiente (en cmd).
// Creates package.json file >> npm init // Installs express module >> npm install agentkeepalive --save OR >> npm i agentkeepalive -s
Importar módulo agentkeepalive : importe el módulo agentkeepalive y almacene la instancia devuelta en una variable.
const Agent = require('agentkeepalive');
Ejemplo 2: Nombre de archivo: index.js
// Node.js program to demonstrate the // new agent({}) method // Importing http module const http = require('http'); // Importing agentkeepalive module const Agent = require('agentkeepalive'); // Creating new agent const keepAliveAgent = new Agent({}); // Options object const options = { host: 'geeksforgeeks.org', port: 80, path: '/', method: 'GET', agent: keepAliveAgent, }; // Requesting via http server module const req = http.request(options, (res) => { // console.log(require('util').inspect(res, depth=0)); // Printing statuscode console.log("StatusCode: ", res.statusCode); // Printing headers console.log("Headers: ", res.headers); }); // Printing agent options console.log("Agent Options: ", req.agent.options); // console.log(req.agent.sockets); req.end();
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
>> Opciones de agente: { keepAlive: verdadero,
Tiempo de espera de socket libre: 15000,
tiempo de espera: 30000,
socketActiveTTL: 0,
camino: nulo}
>> Código de estado: 301
>> Encabezados: { fecha: ‘Miércoles, 19 de agosto de 2020 11:19:23 GMT’,
servidor: ‘Apache’,
ubicación: ‘https://www.geeksforgeeks.org/’,
‘longitud del contenido’: ‘238’,
‘mantener vivo’: ‘tiempo de espera = 5, máximo = 100’,
conexión: ‘Keep-Alive’,
‘tipo de contenido’: ‘texto/html; juego de caracteres=iso-8859-1’}
Referencia: https://nodejs.org/api/http.html#http_new_agent_options
Publicación traducida automáticamente
Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA