From 472c89cd0ed9d14d744925e78ee1c251e32b62c4 Mon Sep 17 00:00:00 2001 From: inmake Date: Sun, 22 Dec 2024 15:10:40 +0500 Subject: [PATCH] upd --- src/index.ts | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/src/index.ts b/src/index.ts index 068ff2f..3654388 100644 --- a/src/index.ts +++ b/src/index.ts @@ -29,21 +29,25 @@ io.on("connection", async (socket) => { console.log((error as Error).message); } - if (activeSession?.ownerIp === user.ownerIp || user.superAdmin) { - user.isAdmin = true; - user.isControlAllowed = true; - } else { - user.isAdmin = false; - user.isControlAllowed = false; - } - - // console.log("socket.conn.remoteAddress", socket.conn.remoteAddress); - // console.log("socket.handshake.address", socket.handshake.address); - socket.join(roomId); const sockets = await io.in(roomId).fetchSockets(); + if (activeSession?.ownerIp === user.ownerIp || user.superAdmin) { + user.isAdmin = true; + } else { + user.isAdmin = false; + } + + if ( + !sockets.find((socket) => socket.handshake.auth.user.isControlAllowed) && + user.isAdmin + ) { + user.isControlAllowed = true; + } else { + user.isControlAllowed = false; + } + io.to(roomId).emit( "update", sockets.map((socket) => socket.handshake.auth.user) @@ -92,6 +96,21 @@ io.on("connection", async (socket) => { }); }); + socket.on("video-initialized", async (userId) => { + const sockets = await io.in(roomId).fetchSockets(); + + const roomUsers = sockets.map((socket) => socket.handshake.auth.user); + const updatedRoomUsers = roomUsers.map((roomUser) => { + if (roomUser.id === userId) { + roomUser.isVideoInitialized = true; + } + + return roomUser; + }); + + io.to(roomId).emit("update", updatedRoomUsers); + }); + socket.on("disconnect", async () => { const sockets = await io.in(roomId).fetchSockets();