Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS泄漏套接字文件描述符_Node.js_Sockets - Fatal编程技术网

Node.js NodeJS泄漏套接字文件描述符

Node.js NodeJS泄漏套接字文件描述符,node.js,sockets,Node.js,Sockets,我有一个正在运行的NodeJS脚本,它没有关闭套接字文件描述符。下面是我正在使用的代码的一个过于简化的版本: const socketServer = createServer(socket => { socket.on("close", () => { socket.destroy() console.log("Socket destroyed") }) socket.on("data", () => { // do whatever ne

我有一个正在运行的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

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

我正在使用Node
6.14.1

你知道为什么会这样吗