La propiedad request.socket ( agregada en v0.3.0) es una propiedad incorporada del módulo ‘ http ‘ que hace referencia al socket subyacente y la mayoría de los usuarios no tienen acceso a esta propiedad. En particular, el socket no emite eventos ‘ legibles ‘, pero se puede acceder al socket a través de request.connection . Esta propiedad garantiza ser una instancia de la clase < net.Socket >, una subclase de <stream.Duplex>.
Para obtener una respuesta y un resultado adecuado, necesitamos importar el módulo ‘ http ‘.
const http = require('http');
Sintaxis:
request.socket
Parámetros: Esta propiedad no acepta ningún parámetro.
Valor devuelto: Devuelve los datos solicitados en forma de un objeto que contiene una gran cantidad de datos relacionados con el socket.
- < stream.Duplex >: < stream.Duplex > o flujo dúplex es un flujo que implementa tanto lectura como escritura.
Los siguientes ejemplos ilustran el uso de la propiedad request.socket en Node.js.
Ejemplo 1: Nombre de archivo: index.js
// Node.js program to demonstrate the // req.socket property // Using require to access http module const http = require('http'); // Requesting from google server const req = http.get({ host: 'www.geeksforgeeks.org' }); // Ending the request req.end(); req.once('response', (res) => { // Printing socket after getting response console.log(req.socket); // Printing address and port after // getting response console.log(`IP address of geeksforgeeks is ${req.socket.localAddress}.`); console.log(`Its Port is ${req.socket.localPort}.`); });
Producción:
>> <ref *1> Socket{ conectando: falso,
_hadError: falso,
_padre: nulo,
_host: ‘www.geeeksforgeeks.org’… [Símbolo(kBytesEscritos)]: 0 }
>> La dirección IP es 192.168.43.207
>> Su puerto es 56933.
Ejemplo 2: Nombre de archivo: index.js
// Node.js program to demonstrate the // req.socket property // Using require to access http module const { get } = require('http'); // Setting host server url const options = { host: 'www.geeksforgeeks.org' }; // Requesting from geeksforgeeks server const req = get(options); req.end(); req.once('response', (res) => { // Printing the requestrelated data console.log("Status:", res.statusCode, res.statusMessage); console.log("Host:", req.socket._host); console.log("Method:", req.socket.parser.outgoing.method); console.log("Parser Header:", req.socket.parser.outgoing._header); console.log("Writable:", req.socket.writable); console.log("Readable:", req.socket.readable); console.log("Http Header:", req.socket._httpMessage._header); if (req.socket._httpMessage._header === req.socket.parser.outgoing._header) { console.log("Both headers are exactly same...") } else { console.log("Headers are not same...") } // Printing address and port after // getting response console.log(`IP address of geeksforgeeks is ${req.socket.localAddress}.`); console.log(`Its port is ${req.socket.localPort}.`); });
Ejecute el archivo index.js con el siguiente comando:
node index.js
Producción:
>> Estado: 301 Movido permanentemente
>> Anfitrión: www.geeksforgeeks.org
>> Método: OBTENER
>> Encabezado del analizador: GET / HTTP/1.1
Anfitrión: www.geeksforgeeks.org
Conexión: cerrar
>> Escribible: verdadero
>> Legible: verdadero
>> Encabezado HTTP: GET / HTTP/1.1
Anfitrión: www.geeksforgeeks.org
Conexión: cerrar
>> Ambos encabezados son exactamente iguales…
>> La dirección IP es 192.168.43.207
>> Su puerto es 57425.
Referencia: https://nodejs.org/api/http.html#http_request_socket
Publicación traducida automáticamente
Artículo escrito por amitkumarjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA