Quand le professeur créer le room il y a un delai avec aucune info puis ca afficher la classe donc petit bug
This commit is contained in:
MathieuSevignyLavallee 2024-11-11 15:46:02 -05:00
parent d37e6c540a
commit db6fa947d7
4 changed files with 26 additions and 13 deletions

View file

@ -43,12 +43,7 @@ class WebSocketService {
createRoom(roomName: string) { createRoom(roomName: string) {
if (this.socket) { if (this.socket) {
if(roomName){ this.socket.emit('create-room', roomName || undefined);
this.socket.emit('create-room', {roomName});
}
else{
this.socket.emit('create-room');
}
} }
} }

View file

@ -9,6 +9,8 @@ services:
container_name: frontend container_name: frontend
ports: ports:
- "5173:5173" - "5173:5173"
networks:
- quiz_network
restart: always restart: always
backend: backend:
@ -31,6 +33,8 @@ services:
FRONTEND_URL: "http://localhost:5173" FRONTEND_URL: "http://localhost:5173"
depends_on: depends_on:
- mongo - mongo
networks:
- quiz_network
restart: always restart: always
quizroom: quizroom:
@ -42,9 +46,10 @@ services:
- "4500:4500" - "4500:4500"
depends_on: depends_on:
- backend - backend
networks:
- quiz_network
restart: always restart: always
# Ce conteneur sert de routeur pour assurer le bon fonctionnement de l'application
nginx: nginx:
build: build:
context: ./nginx context: ./nginx
@ -55,9 +60,10 @@ services:
depends_on: depends_on:
- backend - backend
- frontend - frontend
networks:
- quiz_network
restart: always restart: always
# Ce conteneur est la base de données principale pour l'application
mongo: mongo:
image: mongo image: mongo
container_name: mongo container_name: mongo
@ -66,9 +72,10 @@ services:
tty: true tty: true
volumes: volumes:
- mongodb_data:/data/db - mongodb_data:/data/db
networks:
- quiz_network
restart: always restart: always
# Ce conteneur assure que l'application est à jour en allant chercher s'il y a des mises à jours à chaque heure
watchtower: watchtower:
image: containrrr/watchtower image: containrrr/watchtower
container_name: watchtower container_name: watchtower
@ -80,8 +87,14 @@ services:
- WATCHTOWER_DEBUG=true - WATCHTOWER_DEBUG=true
- WATCHTOWER_INCLUDE_RESTARTING=true - WATCHTOWER_INCLUDE_RESTARTING=true
- WATCHTOWER_SCHEDULE=0 0 5 * * * # At 5 am everyday - WATCHTOWER_SCHEDULE=0 0 5 * * * # At 5 am everyday
networks:
- quiz_network
restart: always restart: always
networks:
quiz_network:
driver: bridge
volumes: volumes:
mongodb_data: mongodb_data:
external: false external: false

View file

@ -17,8 +17,12 @@ export const setupWebsocket = (io: Server): void => {
totalConnections++; totalConnections++;
console.log("A user connected:", socket.id, "| Total connections:", totalConnections); console.log("A user connected:", socket.id, "| Total connections:", totalConnections);
socket.on("create-room", (sentRoomName?: string) => { socket.on("create-room", (sentRoomName) => {
const roomName = sentRoomName ? sentRoomName.toUpperCase() : generateRoomName(); // 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)) { if (!io.sockets.adapter.rooms.get(roomName)) {
socket.join(roomName); socket.join(roomName);
socket.emit("create-success", roomName); socket.emit("create-success", roomName);

View file

@ -24,7 +24,8 @@ class DockerRoomProvider extends BaseRoomProvider {
HostPort: "" HostPort: ""
} }
] ]
} },
NetworkMode: "evaluetonsavoir_quiz_network"
}, },
Env: [...options.env || [], `ROOM_ID=${roomId}`] Env: [...options.env || [], `ROOM_ID=${roomId}`]
}; };
@ -33,7 +34,7 @@ class DockerRoomProvider extends BaseRoomProvider {
await container.start(); await container.start();
const containerInfo = await container.inspect(); const containerInfo = await container.inspect();
const containerIP = containerInfo.NetworkSettings.IPAddress; const containerIP = containerInfo.NetworkSettings.Networks.evaluetonsavoir_quiz_network.IPAddress;
const host = `${containerIP}:4500`; const host = `${containerIP}:4500`;
return await this.roomRepository.create(new Room(roomId, container_name, host, 0)); return await this.roomRepository.create(new Room(roomId, container_name, host, 0));