У меня проблема с правильным контекстом в классе JavaScript и событием socket.io 'disconnect'.Как я могу получить контекст события Node.js и socket.io?
Мой класс выглядит так:
class GameSession {
constructor(gameSessionId) {
this._gameSessionId = gameSessionId;
this._players = new Map();
}
addPlayer(socketId,player) {
this._players.set(socketId,player);
this.addListeners(player);
}
addListeners(player) {
player.socket.on('disconnect',this.playerLeave);
}
playerLeave() {
// ##### here is my Problem
}
}
В функции «playerLeave» Я могу получить доступ к торцевого идентификатор с «this.id». Но чтобы получить доступ к «_players» карты мне нужен контекст класса, который я получаю, если я изменить «addListeners» функция для:
addListeners(player) {
player.socket.on('disconnect',() => this.playerLeave());
}
Но от этого я потеряю контекст события, и поэтому possebility к вызовите «this.id», чтобы получить идентификатор сокета.
Как я могу получить оба?