NodeJS泄漏套接字文件描述符

时间:2018-07-26 11:41:03

标签: node.js sockets

我有一个正在运行的NodeJS脚本,该脚本没有关闭套接字文件描述符。这是我正在使用的代码的过度简化版本:

const socketServer = createServer(socket => {
  socket.on("close", () => {
    socket.destroy()
    console.log("Socket destroyed")
  })
  socket.on("data", () => {
    // do whatever needs to be done
    socket.end("blah blah")
  })
})

socketServer.listen(5000)

如果我运行服务器并让其执行任务,则文件描述符开始累加: ll /proc/{pid}/fd | wc -l

客户端是一个Java tomcat应用程序,它将不时轮询该服务器,打开套接字并关闭。我看到了这种情况,因为“套接字已关闭”被打印到stdout(最终打印到PM2日志),但是文件描述符仍然保留。

我正在使用节点6.14.1

为什么会这样?

0 个答案:

没有答案