server.closeIdleConnections()


关闭所有连接到此服务器但未发送请求或未等待响应的连接。

【Closes all connections connected to this server which are not sending a request or waiting for a response.】

从 Node.js 19.0.0 开始,不再需要在调用 server.close 时同时调用此方法来回收 keep-alive 连接。使用它不会造成任何问题,而且对于需要支持 19.0.0 之前版本的库和应用来说,它有助于确保向后兼容性。每当将其与 server.close 一起使用时,建议在 server.close 之后调用此方法,以避免在调用此方法和 server.close 之间新连接被创建而产生的竞争条件。

const http = require('node:http');

const server = http.createServer({ keepAliveTimeout: 60000 }, (req, res) => {
  res.writeHead(200, { 'Content-Type': 'application/json' });
  res.end(JSON.stringify({
    data: 'Hello World!',
  }));
});

server.listen(8000);
// Close the server after 10 seconds
setTimeout(() => {
  server.close(() => {
    console.log('server on port 8000 closed successfully');
  });
  // Closes idle connections, such as keep-alive connections. Server will close
  // once remaining active connections are terminated
  server.closeIdleConnections();
}, 10000);