简单的websocket例子中的Node.js内存泄漏

这是一个简单的“server.js”脚本,似乎是泄漏内存….

var maxMem = 0; var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({port: 8080}); wss.on('connection', function(ws) { ws.on('close', function() { global.gc(); var mu = process.memoryUsage(); console.log("mem: " + mu.heapUsed); if (mu.heapUsed > maxMem) { maxMem = mu.heapUsed; console.log("*** new max: " + maxMem); } }); }); 

这里是一个'client.js'脚本,简单地打开/closuresWebSockets之间短暂的延迟….

 var WebSocket = require('ws'); function doCycle() { var ws = new WebSocket('ws://localhost:8080'); ws.on('open', function() { setTimeout(function () { ws.close(); doCycle(); }, 100); }); } doCycle(); 

我已经阅读了很多有关WebSocket中的内存泄漏的问题,尽pipe很多人的观点认为它本身就是节点本身的内存分配问题。

我已经试过这个节点0.10.29以及0.11.13 – 相同的结果,这是我的堆(缓慢)随着时间的推移增长…

我只想确认这实际上是一个已知的问题; 或者也许我在这里使用WebSockets是有缺陷的…

提前致谢。

       

网上收集的解决方案 "简单的websocket例子中的Node.js内存泄漏"