Node.js server.close() 由于事件连接而不会关闭

标签 node.js

我试图在应用程序关闭之前显示一些信息。因此,我创建了一个事件,当服务器收到 SIGINT 时将触发该事件。如果没有建立连接,此代码将起作用。但是,如果存在连接 localhost:4040,服务器将永远不会关闭,因为服务器认为仍然存在事件连接(连接计数将为 1)。我不明白的是为什么 Node.js 在请求已经完成时仍然认为存在事件连接。有什么方法可以终止连接或者我当前关闭请求的方法是错误的?

这是我想要完成的代码:

var http = require('http')

var server = http.createServer(function(req, res){
  res.end('test');    
}).listen(4040);

process.on( 'SIGINT', function(){
  server.getConnections(function(err, count){
    console.log('connection:' + count);
  })

  server.close(function(){
    process.exit();
  });
})

我的一些想法:

  1. 保存我收到的套接字的副本并单独关闭它们

希望有人能给我一些解决这个问题的建议。谢谢

最佳答案

  1. 存储您拥有的所有套接字并手动关闭它们
  2. 使用 process.exit() 并销毁整个进程
  3. 使用域并执行可怕的已弃用的domain.dispose()

关于Node.js server.close() 由于事件连接而不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21493793/

相关文章:

jquery - 表单验证和 HTML 修改

node.js - 在 react 组件故障中使用 Node 获取发布数据

node.js - 收到错误 "throw new TypeError(' JwtStrategy 需要 key 或 key ');"

javascript - NodeJS、Express、Nginx 和 Jade...有什么关系?

javascript - NODE.js无法使用reSTLer获得的restful数据

node.js - 为什么 Node https请求比http请求快

javascript - Node 计划不适用于express.js

node.js - 使用redis与socket.io和NodeJs构建实时聊天

node.js - 无法迁移到 Angular 5,在 Angular 文件上出现无效错误

javascript - Node 模块回调中的返回变量