📜  Node.js http.ClientRequest.socket 属性

📅  最后修改于: 2022-05-13 01:56:52.226000             🧑  作者: Mango

Node.js http.ClientRequest.socket 属性

http.ClientRequest.socket是 http 模块中 ClientRequest 类的内置应用程序编程接口,用于获取充当net.Socket的代理对象。

句法:

request.socket

参数:此属性不接受任何参数作为参数。

返回值:此属性返回充当 net.Socket 的代理对象。

示例 1:文件名:index.js

Javascript
// Node.js program to demonstrate the  
// request.socket property
    
// Importing http module 
var http = require('http'); 
    
// Setting up PORT 
const PORT = process.env.PORT || 3000; 
    
// Creating http Server 
var httpServer = http.createServer(
  function(request, response) { 
  
  // Getting proxy socket 
  // by using request.socket
  const value = request.socket;
    
  // Display result
  response.end( value.remoteFamily, 'utf8', () => { 
    console.log("Writing remotefamily of socket..."); 
  
    httpServer.close(() => {
      console.log("server is closed")
    })
  }); 
}); 
    
// Listening to http Server 
httpServer.listen(PORT, () => { 
    console.log("Server is running at port 3000..."); 
});


Javascript
// Node.js program to demonstrate the  
// request.socket property
    
// Importing http module 
var http = require('http'); 
  
// Request and response handler 
const http2Handlers = (request, response) => { 
    
  // Getting proxy socket 
  // by using request.socket method
  const value = request.socket;
    
  // Display result
  response.end( value.remoteFamily, 'utf8', () => { 
    console.log("Writing remotefamily of socket..."); 
  
    httpServer.close(() => {
        console.log("server is closed")
    })
  });
}; 
    
// Creating http Server 
var httpServer = http.createServer
  (http2Handlers).listen(3000, () => { 
    console.log("Server is running at port 3000..."); 
});


使用以下命令运行index.js文件:

node index.js

输出:

Server is running at port 3000...

现在打开浏览器并转到http://localhost:3000/ 您将在屏幕上看到以下输出:

IPv6

现在关闭浏览器,您将在终端屏幕上看到以下输出:

Server is running at port 3000...
Writing remotefamily of socket...
server is closed

示例 2:文件名:index.js

Javascript

// Node.js program to demonstrate the  
// request.socket property
    
// Importing http module 
var http = require('http'); 
  
// Request and response handler 
const http2Handlers = (request, response) => { 
    
  // Getting proxy socket 
  // by using request.socket method
  const value = request.socket;
    
  // Display result
  response.end( value.remoteFamily, 'utf8', () => { 
    console.log("Writing remotefamily of socket..."); 
  
    httpServer.close(() => {
        console.log("server is closed")
    })
  });
}; 
    
// Creating http Server 
var httpServer = http.createServer
  (http2Handlers).listen(3000, () => { 
    console.log("Server is running at port 3000..."); 
});

使用以下命令运行index.js文件:

node index.js

输出:

Server is running at port 3000...

现在打开浏览器并转到http://localhost:3000/ 您将在屏幕上看到以下输出:

IPv6

现在关闭浏览器,您将在终端屏幕上看到以下输出:

Server is running at port 3000...
Writing remotefamily of socket...
server is closed

参考:https://nodejs.org/dist/latest-v12.x/docs/api/http.html#http_request_socket