Vous pouvez créer une instance d'agent dans Node.js en utilisant la nouvelle méthode Agent(). La méthode http.request() crée une instance http.Agent personnalisée à l'aide du globalAgent du module "http".
new Agent({options})
La fonction ci-dessus peut accepter les Paramètres−
Options< /strong> – Ces options contiendront des options configurables qui peuvent être définies sur l'agent lors de sa création. Voici les champs/options qu'un proxy peut avoir -
keepAlive - Cette méthode conserve le socket s'il a ou non des requêtes en attente, mais les conserve pour toute requête future sans réellement rétablir la connexion TCP. Cette connexion peut être fermée en utilisant Fermer la connexion. Valeur par défaut : faux.
keepAliveMsecs - Cette option définit le délai initial pour les paquets TCP keep-Alive lorsque l'option keepAlive est définie sur true. La valeur par défaut est 1 000.
maxSockets - Cette option définit le nombre maximum de sockets autorisés par hôte. Par défaut, cette valeur est l'infini.
maxTotalSockets – Nombre total de sockets autorisés sur tous les hôtes. Chaque requête utilise un nouveau socket jusqu'à ce que la limite soit atteinte. La valeur par défaut est l'infini.
maxFreeSockets - Il s'agit du nombre maximum de sockets libres qui peuvent être maintenues ouvertes à l'état inactif. La valeur par défaut est : 256.
Scheduling - Il s'agit d'une stratégie de planification qui peut être appliquée lors de la sélection de la prochaine prise gratuite à utiliser. L'horaire peut être "fifo" ou "lifo".
timeout - Représente le délai d'expiration du socket en millisecondes.
Créez un fichier appelé agent.js et copiez l'extrait de code suivant. Après avoir créé le fichier, exécutez ce code à l'aide de la commande suivante comme indiqué dans l'exemple ci-dessous -
node agent.js
agent.js
Démo en direct
// Node.js program to demonstrate the creation of new Agent // Importing the http module const http = require('http'); // Creating a new agent var agent = new http.Agent({}); // Defining options for agent const aliveAgent = new http.Agent({ keepAlive: true, maxSockets: 5, }); // Creating connection with alive agent var aliveConnection = aliveAgent.createConnection; // Creating new connection var connection = agent.createConnection; // Printing the connection console.log('Succesfully created connection with agent: ', connection.toString); console.log('Succesfully created connection with alive agent: ', aliveConnection.toString);
C:\homeode>> node agent.js Succesfully created connection with agent: function toString() { [native code] } Succesfully created connection with alive agent: function toString() { [native code] }
Le module "agentkeepalive" tente de créer un socket ou un agent offre une meilleure flexibilité. Nous utiliserons ce module dans les exemples suivants pour une meilleure compréhension.
Installation
npm install agentkeepalive --save
Code du programme
// Node.js program to demonstrate the creation of new Agent // Importing the http module const http = require('http'); // Importing the agentkeepalive module const Agent = require('agentkeepalive'); // Creating a new agent const keepAliveAgent = new Agent({}); // Implementing some options const options = { host: 'tutorialspoint.com', port: 80, path: '/', method: 'GET', agent: keepAliveAgent, }; // Requesting details via http server module const req = http.request(options, (res) => { // Printing statuscode, headers and other details // received from the request console.log("StatusCode: ", res.statusCode); console.log("Headers: ", res.headers); }); // Printing the agent options console.log("Agent Options: ", req.agent.options); req.end();
C:\homeode>> node agent.js Agent Options: { socketActiveTTL: 0, timeout: 30000, freeSocketTimeout: 15000, keepAlive: true, path: null } StatusCode: 403 Headers: { date: 'Sun, 25 Apr 2021 08:21:14 GMT', server: 'Apache', 'x-frame-options': 'SAMEORIGIN', 'last-modified': 'Thu, 16 Oct 2014 13:20:58 GMT', etag: '"1321-5058a1e728280"', 'accept-ranges': 'bytes', 'content-length': '4897', 'x-xss-protection': '1; mode=block', vary: 'User-Agent', 'keep-alive': 'timeout=5, max=100', connection: 'Keep-Alive', 'content-type': 'text/html; charset=UTF-8' }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!