我的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]
});
答案 0 :(得分:2)
如果没有对实例EventEmitter
的引用(如socket),则会通过回调收集垃圾。