我在我的js多人游戏中有内存泄漏。当客户端连接到服务器时,我绑定了很多回调。我的问题是,我必须在从玩家表中删除套接字之前解除绑定回调。在删除套接字之前是否需要解除绑定回调?
这里是我的示例回调:玩家
Player.prototype.viewPortListenerInit = function(){
var self = this;
this.socket.on('clientViewPortResize', function(data){
self.clientViewPort = data;
});
};
这里是增加玩家列表/ HashSet的:
this.list[socket.id] = new Player(socket);
这里是删除:
socket.on('disconnect', function(){
delete this.list[socket.id]
});
https://www.alexkras.com/simple-guide-to-finding-a-javascript-memory-leak-in-node-js/ 我只是撇去这个,但它听起来像你可能忘了删除所有对东西的引用。 –
“删除”是什么意思?从哪里解开它?你真正需要做的是从触发事件的地方删除对套接字的引用。 – Bergi
我有球员列表,我执行像这样删除:delete this.list [socket.id]; – peterSweter