From 74fb1f59180e6ed5118498f3e5652af7d24f7943 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 10 Jun 2023 03:55:49 +0200 Subject: [PATCH] Updated the connection.js handler --- server/handler/connection.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/server/handler/connection.js b/server/handler/connection.js index 7bb6fe8..08b10e6 100644 --- a/server/handler/connection.js +++ b/server/handler/connection.js @@ -1,30 +1,36 @@ -const {connectUserToRoom, roomExists, disconnectUser} = require("../controller/room"); +const {connectUserToRoom, roomExists, disconnectUser, getUserRoom} = require("../controller/room"); module.exports = (socket) => { - console.log(socket.id + " connected") + let currentRoomId = null; socket.on("disconnect", () => { - console.log(socket.id + " disconnected"); + const roomId = getUserRoom(socket.id); + if (roomId) socket.to(roomId).emit("user-disconnected", socket.id); disconnectUser(socket.id); }); socket.on("join-room", ({roomId, name}) => { + if (currentRoomId) return socket.emit("already-in-room", currentRoomId); + if (roomExists(roomId.toString())) { connectUserToRoom(roomId, {id: socket.id, name: name.toString()}); socket.join(roomId); - socket.to(roomId).emit("user-connected", name.toString()); + socket.to(roomId).emit("user-connected", {name: name.toString(), id: socket.id}); socket.emit("room-joined", roomId); + currentRoomId = roomId; } else { socket.emit("room-not-found", roomId.toString()); } }); socket.on("create-room", ({name}) => { + if (!name) return socket.emit("room-name-required"); const roomId = Math.random().toString(36).substring(7); - connectUserToRoom(roomId, {id: socket.id, name: name.toString()}); + connectUserToRoom(roomId, {id: socket.id, name: name?.toString()}); socket.join(roomId); socket.emit("room-created", roomId); + currentRoomId = roomId; }); } \ No newline at end of file