[mirotalksfu] - #200 refactor socket.io, update dep

هذا الالتزام موجود في:
Miroslav Pejic
2025-06-12 18:01:49 +02:00
الأصل b720a3acc8
التزام 4d8c79522b
7 ملفات معدلة مع 223 إضافات و171 حذوفات

عرض الملف

@@ -651,6 +651,7 @@ module.exports = class Room {
});
const { peer_name } = peer;
const { iceConsentTimeout = 35 } = this.webRtcTransport;
transport.observer.on('newproducer', (producer) => {
log.debug('---> new producer created [id:%s]', producer.id);
@@ -678,7 +679,7 @@ module.exports = class Room {
log.warn(`Closing transport ${transport.id} due to prolonged ICE disconnection`);
transport.close();
}
}, 5000); // Wait 5 seconds before closing
}, iceConsentTimeout * 1000); // Wait iceConsentTimeout seconds before closing
} else if (iceState === 'closed') {
log.warn(`ICE state closed for transport ${transport.id}`);
transport.close();

عرض الملف

@@ -64,7 +64,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.8.63
* @version 1.8.64
*
*/
@@ -1742,6 +1742,21 @@ function startServer() {
return cb('isBanned');
}
// Remove old peer with same socket.id before adding new one
const existingPeer = room.getPeer(socket.id);
if (existingPeer) {
room.removePeer(socket.id);
}
// If you want to check by peer_uuid as well, you can do:
if (peer_uuid) {
for (const peer of room.getPeers()) {
if (peer.peer_info?.peer_uuid === peer_uuid) {
room.removePeer(peer.id);
}
}
}
room.addPeer(new Peer(socket.id, data));
const activeRooms = getActiveRooms();