Initial server state

This commit is contained in:
2025-02-28 22:36:11 +01:00
parent 5ab0b61f80
commit 11b3b48caa
7 changed files with 225 additions and 43 deletions

View File

@ -1,7 +1,8 @@
const {connectUserToRoom, roomExists, disconnectUser, getUserRoom} = require("../controller/room");
const {connectUserToRoom, roomExists, disconnectUser, getUserRoom, getRoomUsers} = require("../controller/room");
module.exports = (socket) => {
let currentRoomId = null;
let currentUser = null;
socket.on("disconnect", () => {
const roomId = getUserRoom(socket.id);
@ -14,9 +15,10 @@ module.exports = (socket) => {
if (currentRoomId) return socket.emit("already-in-room", currentRoomId);
if (roomExists(roomId.toString())) {
connectUserToRoom(roomId, {id: socket.id, name: name.toString()});
currentUser = {id: socket.id, name: name.toString()};
connectUserToRoom(roomId, currentUser);
socket.join(roomId);
socket.to(roomId).emit("user-connected", {name: name.toString(), id: socket.id});
socket.to(roomId).emit("user-connected", currentUser);
socket.emit("room-joined", roomId);
currentRoomId = roomId;
} else {
@ -27,10 +29,31 @@ module.exports = (socket) => {
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()});
currentUser = {id: socket.id, name: name?.toString()};
connectUserToRoom(roomId, currentUser);
socket.join(roomId);
socket.emit("room-created", roomId);
currentRoomId = roomId;
});
socket.on("send-message", (messageData) => {
const roomId = getUserRoom(socket.id);
if (roomId) {
socket.to(roomId).emit("chat-message", messageData);
}
});
socket.on("get-user-info", () => {
if (currentUser) {
socket.emit("user-info", currentUser);
}
});
socket.on("get-room-users", () => {
const roomId = getUserRoom(socket.id);
if (roomId) {
const users = getRoomUsers(roomId);
socket.emit("room-users", users);
}
});
}