From db6fa947d73c6a8d771d2334cf83e645caf097ed Mon Sep 17 00:00:00 2001 From: MathieuSevignyLavallee <89943988+MathieuSevignyLavallee@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:46:02 -0500 Subject: [PATCH] Working MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quand le professeur créer le room il y a un delai avec aucune info puis ca afficher la classe donc petit bug --- client/src/services/WebsocketService.tsx | 7 +------ docker-compose.local.yaml | 19 ++++++++++++++++--- quizRoom/socket/setupWebSocket.ts | 8 ++++++-- server/roomsProviders/docker-provider.js | 5 +++-- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/client/src/services/WebsocketService.tsx b/client/src/services/WebsocketService.tsx index f0b3269..0d09a18 100644 --- a/client/src/services/WebsocketService.tsx +++ b/client/src/services/WebsocketService.tsx @@ -43,12 +43,7 @@ class WebSocketService { createRoom(roomName: string) { if (this.socket) { - if(roomName){ - this.socket.emit('create-room', {roomName}); - } - else{ - this.socket.emit('create-room'); - } + this.socket.emit('create-room', roomName || undefined); } } diff --git a/docker-compose.local.yaml b/docker-compose.local.yaml index db603e6..1db1920 100644 --- a/docker-compose.local.yaml +++ b/docker-compose.local.yaml @@ -9,6 +9,8 @@ services: container_name: frontend ports: - "5173:5173" + networks: + - quiz_network restart: always backend: @@ -31,6 +33,8 @@ services: FRONTEND_URL: "http://localhost:5173" depends_on: - mongo + networks: + - quiz_network restart: always quizroom: @@ -42,9 +46,10 @@ services: - "4500:4500" depends_on: - backend + networks: + - quiz_network restart: always - # Ce conteneur sert de routeur pour assurer le bon fonctionnement de l'application nginx: build: context: ./nginx @@ -55,9 +60,10 @@ services: depends_on: - backend - frontend + networks: + - quiz_network restart: always - # Ce conteneur est la base de données principale pour l'application mongo: image: mongo container_name: mongo @@ -66,9 +72,10 @@ services: tty: true volumes: - mongodb_data:/data/db + networks: + - quiz_network restart: always - # Ce conteneur assure que l'application est à jour en allant chercher s'il y a des mises à jours à chaque heure watchtower: image: containrrr/watchtower container_name: watchtower @@ -80,8 +87,14 @@ services: - WATCHTOWER_DEBUG=true - WATCHTOWER_INCLUDE_RESTARTING=true - WATCHTOWER_SCHEDULE=0 0 5 * * * # At 5 am everyday + networks: + - quiz_network restart: always +networks: + quiz_network: + driver: bridge + volumes: mongodb_data: external: false diff --git a/quizRoom/socket/setupWebSocket.ts b/quizRoom/socket/setupWebSocket.ts index b7b2257..d5e2ab0 100644 --- a/quizRoom/socket/setupWebSocket.ts +++ b/quizRoom/socket/setupWebSocket.ts @@ -17,8 +17,12 @@ export const setupWebsocket = (io: Server): void => { totalConnections++; console.log("A user connected:", socket.id, "| Total connections:", totalConnections); - socket.on("create-room", (sentRoomName?: string) => { - const roomName = sentRoomName ? sentRoomName.toUpperCase() : generateRoomName(); + socket.on("create-room", (sentRoomName) => { + // Ensure sentRoomName is a string before applying toUpperCase() + const roomName = (typeof sentRoomName === "string" && sentRoomName.trim() !== "") + ? sentRoomName.toUpperCase() + : generateRoomName(); + if (!io.sockets.adapter.rooms.get(roomName)) { socket.join(roomName); socket.emit("create-success", roomName); diff --git a/server/roomsProviders/docker-provider.js b/server/roomsProviders/docker-provider.js index 52adaec..37d01c8 100644 --- a/server/roomsProviders/docker-provider.js +++ b/server/roomsProviders/docker-provider.js @@ -24,7 +24,8 @@ class DockerRoomProvider extends BaseRoomProvider { HostPort: "" } ] - } + }, + NetworkMode: "evaluetonsavoir_quiz_network" }, Env: [...options.env || [], `ROOM_ID=${roomId}`] }; @@ -33,7 +34,7 @@ class DockerRoomProvider extends BaseRoomProvider { await container.start(); const containerInfo = await container.inspect(); - const containerIP = containerInfo.NetworkSettings.IPAddress; + const containerIP = containerInfo.NetworkSettings.Networks.evaluetonsavoir_quiz_network.IPAddress; const host = `${containerIP}:4500`; return await this.roomRepository.create(new Room(roomId, container_name, host, 0));