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';
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');
}
}

View File

@ -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<string, Player> = 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()]);
}
}