From 985ff729060200fe1f07c2cb311cb51a11a837b4 Mon Sep 17 00:00:00 2001 From: Cloyir Date: Mon, 12 Jan 2026 18:09:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=BA=86=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E5=B9=B6=E4=BF=AE=E5=A4=8D=E9=80=80=E5=87=BA?= =?UTF-8?q?=E6=88=BF=E9=97=B4=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E5=B7=B2=E9=83=A8=E7=BD=B2=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 -- server/index.js | 20 ++++++++++ src/App.vue | 35 +++++++++++++++--- src/components/UserList.vue | 59 +++++++++++++++++++++++++++++- src/composables/useFileTransfer.js | 8 +++- src/composables/useSocket.js | 42 ++++++++++++++------- src/composables/useWebRTC.js | 19 +++++++++- src/i18n/locales/en-US.js | 4 +- src/i18n/locales/zh-CN.js | 4 +- 9 files changed, 166 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 7efc8a8..02c17fd 100644 --- a/.gitignore +++ b/.gitignore @@ -36,9 +36,6 @@ src-tauri/target/ .env.local .env.*.local -# Config -config.json - # OS .DS_Store Thumbs.db diff --git a/server/index.js b/server/index.js index b22668a..98c1a1f 100644 --- a/server/index.js +++ b/server/index.js @@ -75,6 +75,26 @@ io.on('connection', (socket) => { socket.emit('room-users', roomUsers); }); + socket.on('leave-room', ({ roomId, userId, socketId }) => { + const user = users.get(socketId); + if (user && user.roomId === roomId) { + const room = rooms.get(roomId); + if (room) { + room.delete(socketId); + socket.to(roomId).emit('user-left', { + userId: user.userId, + socketId: socketId + }); + + if (room.size === 0) { + rooms.delete(roomId); + } + } + users.delete(socketId); + socket.leave(roomId); + } + }); + socket.on('signal', ({ targetSocketId, signal }) => { const targetUser = users.get(targetSocketId); if (targetUser) { diff --git a/src/App.vue b/src/App.vue index 85e1206..b866a70 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,5 +1,5 @@