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