Node.js nuevo método Agent()

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *