[mirotalksfu] - refactoring, update dep
هذا الالتزام موجود في:
@@ -55,7 +55,7 @@ dev dependencies: {
|
||||
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
|
||||
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
|
||||
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com
|
||||
* @version 1.6.80
|
||||
* @version 1.6.81
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -2790,49 +2790,19 @@ function startServer() {
|
||||
});
|
||||
|
||||
socket.on('disconnect', async () => {
|
||||
if (!roomExists(socket)) return;
|
||||
|
||||
const { room, peer } = getRoomAndPeer(socket);
|
||||
|
||||
const { peer_name, peer_uuid } = peer || {};
|
||||
|
||||
const isPresenter = await isPeerPresenter(socket.room_id, socket.id, peer_name, peer_uuid);
|
||||
|
||||
log.debug('[Disconnect] - peer name', peer_name);
|
||||
|
||||
room.removePeer(socket.id);
|
||||
|
||||
if (room.getPeers().size === 0) {
|
||||
//
|
||||
stopRTMPActiveStreams(isPresenter, room);
|
||||
|
||||
roomList.delete(socket.room_id);
|
||||
|
||||
delete presenters[socket.room_id];
|
||||
|
||||
log.info('[Disconnect] - Last peer - current presenters grouped by roomId', presenters);
|
||||
|
||||
const activeRooms = getActiveRooms();
|
||||
|
||||
log.info('[Disconnect] - Last peer - current active rooms', activeRooms);
|
||||
|
||||
const activeStreams = getRTMPActiveStreams();
|
||||
|
||||
log.info('[Disconnect] - Last peer - current active RTMP streams', activeStreams);
|
||||
}
|
||||
|
||||
room.broadCast(socket.id, 'removeMe', removeMeData(room, peer_name, isPresenter));
|
||||
|
||||
if (isPresenter) removeIP(socket);
|
||||
|
||||
socket.room_id = null;
|
||||
await handleRoomExit('disconnect', socket, true);
|
||||
});
|
||||
|
||||
socket.on('exitRoom', async (_, callback) => {
|
||||
await handleRoomExit('exitRoom', socket, false, callback);
|
||||
});
|
||||
|
||||
// common
|
||||
|
||||
async function handleRoomExit(event, socket, broadcast = false, callback = null) {
|
||||
if (!roomExists(socket)) {
|
||||
return callback({
|
||||
error: 'Not currently in a room',
|
||||
});
|
||||
if (callback) callback({ error: 'Room not found' });
|
||||
return;
|
||||
}
|
||||
|
||||
const { room, peer } = getRoomAndPeer(socket);
|
||||
@@ -2841,39 +2811,32 @@ function startServer() {
|
||||
|
||||
const isPresenter = await isPeerPresenter(socket.room_id, socket.id, peer_name, peer_uuid);
|
||||
|
||||
log.debug('Exit room', peer_name);
|
||||
|
||||
room.removePeer(socket.id);
|
||||
|
||||
room.broadCast(socket.id, 'removeMe', removeMeData(room, peer_name, isPresenter));
|
||||
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) {
|
||||
//
|
||||
stopRTMPActiveStreams(isPresenter, room);
|
||||
|
||||
roomList.delete(socket.room_id);
|
||||
|
||||
delete presenters[socket.room_id];
|
||||
|
||||
log.info('[REMOVE ME] - Last peer - current presenters grouped by roomId', presenters);
|
||||
log.info('[Room Exit] - Last peer - current presenters grouped by roomId', presenters);
|
||||
|
||||
const activeRooms = getActiveRooms();
|
||||
log.info('[Room Exit] - Current active rooms:', getActiveRooms());
|
||||
|
||||
log.info('[REMOVE ME] - Last peer - current active rooms', activeRooms);
|
||||
|
||||
const activeStreams = getRTMPActiveStreams();
|
||||
|
||||
log.info('[REMOVE ME] - Last peer - current active RTMP streams', activeStreams);
|
||||
log.info('[Room Exit] - Current active RTMP streams:', getRTMPActiveStreams());
|
||||
}
|
||||
|
||||
socket.room_id = null;
|
||||
|
||||
if (isPresenter) removeIP(socket);
|
||||
|
||||
callback('Successfully exited room');
|
||||
});
|
||||
|
||||
// common
|
||||
if (callback) callback('Successfully exited room');
|
||||
}
|
||||
|
||||
function getRoomAndPeer(socket) {
|
||||
const room = getRoom(socket);
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم