[mirotalksfu] - refactoring, update dep

هذا الالتزام موجود في:
Miroslav Pejic
2025-01-05 16:41:42 +01:00
الأصل 8efb33867d
التزام 0447694e0a
4 ملفات معدلة مع 25 إضافات و62 حذوفات

عرض الملف

@@ -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);

عرض الملف

@@ -1,6 +1,6 @@
{
"name": "mirotalksfu",
"version": "1.6.80",
"version": "1.6.81",
"description": "WebRTC SFU browser-based video calls",
"main": "Server.js",
"scripts": {
@@ -82,7 +82,7 @@
"qs": "6.13.1",
"socket.io": "4.8.1",
"swagger-ui-express": "5.0.1",
"uuid": "11.0.3"
"uuid": "11.0.4"
},
"devDependencies": {
"mocha": "^11.0.1",

عرض الملف

@@ -11,7 +11,7 @@ if (location.href.substr(0, 5) !== 'https') location.href = 'https' + location.h
* @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
*
*/
@@ -4676,7 +4676,7 @@ function showAbout() {
imageUrl: image.about,
customClass: { image: 'img-about' },
position: 'center',
title: 'WebRTC SFU v1.6.80',
title: 'WebRTC SFU v1.6.81',
html: `
<br />
<div id="about">

عرض الملف

@@ -9,7 +9,7 @@
* @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
*
*/
@@ -881,6 +881,8 @@ class RoomClient {
// ####################################################
initSockets() {
this.socket.on('connect', this.handleSocketConnect);
this.socket.on('disconnect', this.handleSocketDisconnect);
this.socket.on('consumerClosed', this.handleConsumerClosed);
this.socket.on('setVideoOff', this.handleSetVideoOff);
this.socket.on('removeMe', this.handleRemoveMe);
@@ -905,8 +907,6 @@ class RoomClient {
this.socket.on('updateRoomModerator', this.handleUpdateRoomModeratorData);
this.socket.on('updateRoomModeratorALL', this.handleUpdateRoomModeratorALLData);
this.socket.on('recordingAction', this.handleRecordingActionData);
this.socket.on('connect', this.handleSocketConnect);
this.socket.on('disconnect', this.handleSocketDisconnect);
this.socket.on('endRTMP', this.handleEndRTMP);
this.socket.on('errorRTMP', this.handleErrorRTMP);
this.socket.on('endRTMPfromURL', this.handleEndRTMPfromURL);