gpt4 book ai didi

javascript - 如何获取 Node.js 类和 socket.io 事件上下文?

转载 作者:行者123 更新时间:2023-11-28 05:27:07 24 4
gpt4 key购买 nike

我在 JavaScript 类和 socket.io“断开连接”事件中的正确上下文方面遇到问题。

我的类(class)看起来像这样:

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”访问套接字ID。但是要访问“_players” map ,我需要类的上下文,如果我将“addListeners”函数更改为:

addListeners(player) {
player.socket.on('disconnect',() => this.playerLeave());
}

但是这样我就失去了事件的上下文,因此可以调用“this.id”来接收套接字 ID。

我怎样才能同时获得两者?

最佳答案

你能尝试这样的事情吗:

addListeners(player) {
player.socket.on('disconnect', this.playerLeave.bind(this));
}

playerLeave (socket) {...}

关于javascript - 如何获取 Node.js 类和 socket.io 事件上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com