diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index 16d894ba0..73d44195c 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -61,6 +61,8 @@ export class GameServer { private kickedClients: Set = new Set(); private outOfSyncClients: Set = new Set(); + private websockets: Set = new Set(); + constructor( public readonly id: string, readonly log_: Logger, @@ -107,6 +109,7 @@ export class GameServer { } public addClient(client: Client, lastTurn: number) { + this.websockets.add(client.ws); if (this.kickedClients.has(client.clientID)) { this.log.warn(`cannot add client, already kicked`, { clientID: client.clientID, @@ -401,10 +404,10 @@ export class GameServer { async end() { // Close all WebSocket connections clearInterval(this.endTurnIntervalID); - this.allClients.forEach((client) => { - client.ws.removeAllListeners(); - if (client.ws.readyState === WebSocket.OPEN) { - client.ws.close(1000, "game has ended"); + this.websockets.forEach((ws) => { + ws.removeAllListeners(); + if (ws.readyState === WebSocket.OPEN) { + ws.close(1000, "game has ended"); } }); if (!this._hasPrestarted && !this._hasStarted) {