[mirotalksfu] - fix

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

عرض الملف

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