diff --git a/back/src/Controller/IoSocketController.ts b/back/src/Controller/IoSocketController.ts index edda6de9..8af857fe 100644 --- a/back/src/Controller/IoSocketController.ts +++ b/back/src/Controller/IoSocketController.ts @@ -297,6 +297,9 @@ export class IoSocketController { const world : World|undefined = this.Worlds.get(Client.roomId); if(world){ world.leave(Client); + if (world.isEmpty()) { + this.Worlds.delete(Client.roomId); + } } //user leave previous room Client.leave(Client.roomId); diff --git a/back/src/Model/World.ts b/back/src/Model/World.ts index 51129857..2cb92dd2 100644 --- a/back/src/Model/World.ts +++ b/back/src/Model/World.ts @@ -72,6 +72,10 @@ export class World { this.users.delete(user.userId); } + public isEmpty(): boolean { + return this.users.size === 0; + } + public updatePosition(socket : Identificable, userPosition: PointInterface): void { const user = this.users.get(socket.userId); if(typeof user === 'undefined') {