[mirotalksfu] - refactoring

هذا الالتزام موجود في:
Miroslav Pejic
2024-12-26 21:49:13 +01:00
الأصل 98e5bf22d0
التزام 38014cd0bd
5 ملفات معدلة مع 36 إضافات و39 حذوفات

عرض الملف

@@ -568,7 +568,12 @@ module.exports = class Room {
const peer = this.getPeer(socket_id);
peer.addTransport(transport);
try {
peer.addTransport(transport);
} catch (error) {
log.error('Failed to add peer transport', error);
throw new Error(`Failed to add peer transport ${id}`);
}
log.debug('Transport created', { transportId: id, transportType: type });
@@ -664,7 +669,9 @@ module.exports = class Room {
peerProducer = await peer.createProducer(producerTransportId, rtpParameters, kind, type);
} catch (error) {
log.error(`Error creating producer for peer with socket ID ${socket_id}`, error);
throw new Error(`Error creating producer with transport ID ${producerTransportId} for peer ${socket_id}`);
throw new Error(
`Error creating producer with transport ID ${producerTransportId} type ${type} for peer ${socket_id}`,
);
}
if (!peerProducer) {

عرض الملف

@@ -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.64
* @version 1.6.65
*
*/
@@ -1561,6 +1561,9 @@ function startServer() {
try {
const createWebRtcTransport = await room.createWebRtcTransport(socket.id);
//log.debug('Create WebRtc transport callback', { callback: createWebRtcTransport });
callback(createWebRtcTransport);
} catch (err) {
log.error('Create WebRtc Transport error', err);
@@ -1574,16 +1577,20 @@ function startServer() {
}
const { room, peer } = getRoomAndPeer(socket);
const { peer_name } = peer || 'undefined';
log.debug('Connect transport', { peer_name: peer_name, transport_id: transport_id });
try {
const connectTransport = await room.connectPeerTransport(socket.id, transport_id, dtlsParameters);
callback({ success: true, message: connectTransport });
//log.debug('Connect transport', { callback: connectTransport });
callback(connectTransport);
} catch (err) {
log.error('Connect transport error', err);
callback({ success: false, error: err.message });
callback({ error: err.message });
}
});

عرض الملف

@@ -1,6 +1,6 @@
{
"name": "mirotalksfu",
"version": "1.6.64",
"version": "1.6.65",
"description": "WebRTC SFU browser-based video calls",
"main": "Server.js",
"scripts": {

عرض الملف

@@ -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.64
* @version 1.6.65
*
*/
@@ -4618,7 +4618,7 @@ function showAbout() {
imageUrl: image.about,
customClass: { image: 'img-about' },
position: 'center',
title: 'WebRTC SFU v1.6.64',
title: 'WebRTC SFU v1.6.65',
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.64
* @version 1.6.65
*
*/
@@ -470,6 +470,8 @@ class RoomClient {
})
.catch((error) => {
console.error('Join error:', error);
//...
popupHtmlMessage(null, image.network, 'Join Room', error, 'center', '/', true);
});
}
@@ -688,14 +690,10 @@ class RoomClient {
this.producerTransport.on('connect', async ({ dtlsParameters }, callback, errback) => {
try {
const response = await this.socket.request('connectTransport', {
await this.socket.request('connectTransport', {
transport_id: this.producerTransport.id,
dtlsParameters,
});
if (!response.success) {
console.error('Producer Transport connection failed', response.error);
throw new Error(response.error);
}
callback();
} catch (err) {
console.error('Producer Transport connection error', err);
@@ -797,14 +795,10 @@ class RoomClient {
this.consumerTransport.on('connect', async ({ dtlsParameters }, callback, errback) => {
try {
const response = await this.socket.request('connectTransport', {
await this.socket.request('connectTransport', {
transport_id: this.consumerTransport.id,
dtlsParameters,
});
if (!response.success) {
console.error('Consumer Transport connection failed', response.error);
throw new Error(response.error);
}
callback();
} catch (err) {
console.error('Consumer Transport connection error', err);
@@ -2253,7 +2247,7 @@ class RoomClient {
// https://mediasoup.discourse.group/t/create-server-side-consumers-with-paused-true/244
try {
const response = await this.socket.request('resumeConsumer', { consumer_id: consumer.id });
const response = await this.socket.request('resumeConsumer', { consumer_id: consumer.id, type });
console.log('Consumer resumed', response);
} catch (error) {
console.error('Error resuming consumer', error);
@@ -2276,31 +2270,20 @@ class RoomClient {
}
} catch (error) {
console.error('Error in consume', error);
popupHtmlMessage(null, image.network, 'Consume', error, 'center', '/', true);
}
}
async getConsumeStream(producerId, peer_id, type) {
const { rtpCapabilities } = this.device;
let data = {};
try {
data = await this.socket.request('consume', {
consumerTransportId: this.consumerTransport.id,
rtpCapabilities,
producerId,
type,
});
if (data.error) {
console.error('Error consuming producer:', data.error);
throw new Error(data.error);
}
console.log('Consumer parameters received:', data);
} catch (err) {
console.error('Failed to consume:', err);
}
const data = await this.socket.request('consume', {
consumerTransportId: this.consumerTransport.id,
rtpCapabilities,
producerId,
type,
});
const { id, kind, rtpParameters } = data;
const codecOptions = {};