[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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم