📜  Node.js http.server.setTimeout() 方法

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

Node.js http.server.setTimeout() 方法

http.server.setTimeout()是 HTTP 模块中 Server 类的内置应用程序编程接口,用于设置套接字的超时值。

句法:

server.setTimeout([msecs][, callback])

参数:此方法以毫秒为单位获取套接字超时值。

返回值:此方法只返回一个回调函数以供进一步操作。

示例 1:文件名:index.js

Javascript
// Node.js program to demonstrate the  
// server.setTimeout() APi
    
// 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 the reference of the 
  // underlying socket object
  // by using socket API
  const value = response.socket;
    
  // Display result
  // by using end() api
  response.end( "socket buffersize : " 
      + value.bufferSize, 'utf8', () => { 
      console.log("Displaying the result..."); 
  }); 
}); 
    
// Listening to http Server 
// by using listen() api
httpServer.listen(PORT, () => { 
    console.log(
    "Server is running at port 3000..."); 
});
  
httpServer.setTimeout(3000,()=>{
  
  console.log(
    "Socket is destroyed due to timeout")
  
    // Closing server 
    // by using close() api
    httpServer.close(()=>{
        console.log("Server is closed")
    })
})


Javascript
// Node.js program to demonstrate the  
// server.setTimeout() APi
    
// Importing http module 
var http = require('http'); 
  
// Request and response handler 
const http2Handlers = (request, response) => { 
    
  // Getting the reference of the 
  // underlying socket object
  // by using socket API
  const value = response.socket;
    
  // Display result
  // by using end() api
  response.end( "socket local address : " 
      + value.localAddress, 'utf8', () => { 
      console.log("Displaying the result..."); 
  });
  }; 
    
// Listening to http Server 
// by using listen() api
var httpServer = http.createServer(
    http2Handlers).listen(3000, () => { 
    console.log("Server is running at port 3000..."); 
}); 
  
httpServer.setTimeout(3000,()=>{
    console.log(
    "Socket is destroyed due to timeout")
    
      // Closing server 
      // by using close() api
      httpServer.close(()=>{
          console.log("Server is closed")
      })
    })


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

node index.js

控制台输出:

Server is running at port 3000...
Displaying the result...
Displaying the result...
Socket is destroyed due to timeout
Socket is destroyed due to timeout
Server is closed
Server is closed

浏览器输出:将本地主机地址 http://localhost:3000/ 粘贴到浏览器的搜索栏中。

socket buffersize : 0

示例 2:文件名:index.js

Javascript

// Node.js program to demonstrate the  
// server.setTimeout() APi
    
// Importing http module 
var http = require('http'); 
  
// Request and response handler 
const http2Handlers = (request, response) => { 
    
  // Getting the reference of the 
  // underlying socket object
  // by using socket API
  const value = response.socket;
    
  // Display result
  // by using end() api
  response.end( "socket local address : " 
      + value.localAddress, 'utf8', () => { 
      console.log("Displaying the result..."); 
  });
  }; 
    
// Listening to http Server 
// by using listen() api
var httpServer = http.createServer(
    http2Handlers).listen(3000, () => { 
    console.log("Server is running at port 3000..."); 
}); 
  
httpServer.setTimeout(3000,()=>{
    console.log(
    "Socket is destroyed due to timeout")
    
      // Closing server 
      // by using close() api
      httpServer.close(()=>{
          console.log("Server is closed")
      })
    })

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

node index.js

控制台输出:

Server is running at port 3000...
Displaying the result...
Displaying the result...
Socket is destroyed due to timeout
Socket is destroyed due to timeout
Server is closed
Server is closed

浏览器输出:将本地主机地址 http://localhost:3000/ 粘贴到浏览器的搜索栏中。

socket local address : ::1

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