Node.js NodeJS泄漏套接字文件描述符
我有一个正在运行的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
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日志),但文件描述符仍然保留
我正在使用Node6.14.1
你知道为什么会这样吗