我在我的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