From fae67ce2a2feece807556962d3a6d75f8d7e3f88 Mon Sep 17 00:00:00 2001 From: Laura Valera Date: Wed, 4 Dec 2024 19:06:07 +0100 Subject: [PATCH] Add User Name and store it --- app/src/app.service.ts | 26 ++++++++++++++++---------- app/src/players/player.service.ts | 11 ++++++++--- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/app/src/app.service.ts b/app/src/app.service.ts index f1dbb3c..8f3921b 100644 --- a/app/src/app.service.ts +++ b/app/src/app.service.ts @@ -8,6 +8,7 @@ import { } from '@nestjs/websockets'; import { PlayerService } from './players/player.service'; import { Socket } from 'socket.io'; +import { ClientEvent, CreateLobbyEvent, JoinLobbyEvent } from 'interface'; @WebSocketGateway({ cors: true }) @Injectable() @@ -20,16 +21,21 @@ export class AppService implements OnGatewayConnection { this.logger.log(client.id); } - @SubscribeMessage('example-request') - handleCustomEvent( + @SubscribeMessage(ClientEvent.CREATE_LOBBY) + handleCreateLobby( @ConnectedSocket() client: Socket, - @MessageBody() data: string, - ): unknown { - this.logger.debug(`Received request in backend with data: ${data}`); - this.logger.debug(`Received data id from client: ${client.id}`); - return { - event: 'example-response', - data: `Replying from backend, received data: ${data}`, - }; + @MessageBody() event: CreateLobbyEvent, + ) { + this.playerService.addUserName(client.id, event.userName); + this.logger.log('Se ha creado un lobby'); + } + + @SubscribeMessage(ClientEvent.JOIN_LOBBY) + handleJoinLobby( + @ConnectedSocket() client: Socket, + @MessageBody() event: JoinLobbyEvent, + ) { + this.playerService.addUserName(client.id, event.userName); + this.logger.log('Te has unido a un lobby'); } } diff --git a/app/src/players/player.service.ts b/app/src/players/player.service.ts index 08fa674..b247a18 100644 --- a/app/src/players/player.service.ts +++ b/app/src/players/player.service.ts @@ -4,11 +4,16 @@ import { Player } from './player'; @Injectable() export class PlayerService { private readonly logger = new Logger(PlayerService.name); - private readonly players: Player[] = []; + private readonly players: Map = new Map(); createPlayer(socketId: string) { const player: Player = new Player(socketId); - this.players.push(player); - this.logger.log(this.players); + this.players.set(socketId, player); + this.logger.log([...this.players.entries()]); + } + + addUserName(socketId: string, userName: string) { + this.players.get(socketId).userName = userName; + this.logger.log([...this.players.entries()]); } }