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);