Add User Name and store it

pull/9/head
Laura Valera 2024-12-04 19:06:07 +01:00
parent 88627bb9a7
commit fae67ce2a2
2 changed files with 24 additions and 13 deletions

View File

@ -8,6 +8,7 @@ import {
} from '@nestjs/websockets'; } from '@nestjs/websockets';
import { PlayerService } from './players/player.service'; import { PlayerService } from './players/player.service';
import { Socket } from 'socket.io'; import { Socket } from 'socket.io';
import { ClientEvent, CreateLobbyEvent, JoinLobbyEvent } from 'interface';
@WebSocketGateway({ cors: true }) @WebSocketGateway({ cors: true })
@Injectable() @Injectable()
@ -20,16 +21,21 @@ export class AppService implements OnGatewayConnection {
this.logger.log(client.id); this.logger.log(client.id);
} }
@SubscribeMessage('example-request') @SubscribeMessage(ClientEvent.CREATE_LOBBY)
handleCustomEvent( handleCreateLobby(
@ConnectedSocket() client: Socket, @ConnectedSocket() client: Socket,
@MessageBody() data: string, @MessageBody() event: CreateLobbyEvent,
): unknown { ) {
this.logger.debug(`Received request in backend with data: ${data}`); this.playerService.addUserName(client.id, event.userName);
this.logger.debug(`Received data id from client: ${client.id}`); this.logger.log('Se ha creado un lobby');
return { }
event: 'example-response',
data: `Replying from backend, received data: ${data}`, @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');
} }
} }

View File

@ -4,11 +4,16 @@ import { Player } from './player';
@Injectable() @Injectable()
export class PlayerService { export class PlayerService {
private readonly logger = new Logger(PlayerService.name); private readonly logger = new Logger(PlayerService.name);
private readonly players: Player[] = []; private readonly players: Map<string, Player> = new Map();
createPlayer(socketId: string) { createPlayer(socketId: string) {
const player: Player = new Player(socketId); const player: Player = new Player(socketId);
this.players.push(player); this.players.set(socketId, player);
this.logger.log(this.players); this.logger.log([...this.players.entries()]);
}
addUserName(socketId: string, userName: string) {
this.players.get(socketId).userName = userName;
this.logger.log([...this.players.entries()]);
} }
} }