[mirotalksfu] - fix

هذا الالتزام موجود في:
Miroslav Pejic
2025-01-07 02:03:11 +01:00
الأصل 65c50b9c63
التزام 3bc1486f27

عرض الملف

@@ -2790,16 +2790,16 @@ function startServer() {
});
socket.on('disconnect', async () => {
await handleRoomExit('disconnect', socket, true);
await handleRoomExit('disconnect', socket);
});
socket.on('exitRoom', async (_, callback) => {
await handleRoomExit('exitRoom', socket, false, callback);
await handleRoomExit('exitRoom', socket, callback);
});
// common
async function handleRoomExit(event, socket, broadcast = false, callback = null) {
async function handleRoomExit(event, socket, callback = null) {
if (!roomExists(socket)) {
if (callback) callback({ error: 'Room not found' });
return;
@@ -2811,13 +2811,9 @@ function startServer() {
const isPresenter = await isPeerPresenter(socket.room_id, socket.id, peer_name, peer_uuid);
room.removePeer(socket.id);
if (broadcast) room.broadCast(socket.id, 'removeMe', removeMeData(room, peer_name, isPresenter));
log.debug('[Room Exit] ----------->', { event: event, peer_name: peer_name, isPresenter: isPresenter });
if (room.getPeers().size === 0) {
if (room.getPeersCount() === 0) {
stopRTMPActiveStreams(isPresenter, room);
roomList.delete(socket.room_id);
@@ -2835,6 +2831,10 @@ function startServer() {
if (isPresenter) removeIP(socket);
room.removePeer(socket.id);
room.broadCast(socket.id, 'removeMe', removeMeData(room, peer_name, isPresenter));
if (callback) callback('Successfully exited room');
}