diff --git a/TODO.txt b/TODO.txt index 4323128ad..ab4cfd94f 100644 --- a/TODO.txt +++ b/TODO.txt @@ -17,6 +17,7 @@ * upload and start server DONE 8/13/2024 * fix multiplayer DONE 8/14/2024 * fix server resource leak DONE 8/14/2024 +* fix server memory leak * balance attacks/expansions better * delete players when territories too small * better algorithm for name render placement diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index 80c93b6bb..03a4c41a0 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -9,6 +9,7 @@ export class GameServer { private turns: Turn[] = [] private intents: Intent[] = [] + private lastUpdate = 0; constructor( public readonly id: GameID, @@ -16,11 +17,13 @@ export class GameServer { private clients: Map, private settings: Config, ) { + this.lastUpdate = Date.now() } public start() { this.clients.forEach(c => { c.ws.on('message', (message: string) => { + this.lastUpdate = Date.now() const clientMsg: ClientMessage = ClientMessageSchema.parse(JSON.parse(message)) if (clientMsg.type == "intent") { if (clientMsg.gameID == this.id) { @@ -69,7 +72,7 @@ export class GameServer { } public isActive(): boolean { - return Date.now() - this.startTime < 1000 * 60 * 60 // 1 hour + return Date.now() - this.lastUpdate < 1000 * 60 * 5 // 5 minutes } endGame() {