[mirotalksfu] - refactoring

هذا الالتزام موجود في:
Miroslav Pejic
2024-12-24 00:37:59 +01:00
الأصل 968ca95ab4
التزام 98e5bf22d0
6 ملفات معدلة مع 36 إضافات و33 حذوفات

عرض الملف

@@ -194,6 +194,7 @@ module.exports = class Peer {
const { scalabilityMode } = rtpParameters.encodings[0];
const spatialLayer = parseInt(scalabilityMode.substring(1, 2)); // 1/2/3
const temporalLayer = parseInt(scalabilityMode.substring(3, 4)); // 1/2/3
log.debug(`Producer [${type}-${kind}] ----->`, {
scalabilityMode,
spatialLayer,
@@ -251,7 +252,7 @@ module.exports = class Peer {
this.consumers.delete(consumer_id);
}
async createConsumer(consumer_transport_id, producer_id, rtpCapabilities) {
async createConsumer(consumer_transport_id, producerId, rtpCapabilities) {
if (!this.transports.has(consumer_transport_id)) {
throw new Error(`Consumer transport with ID ${consumer_transport_id} not found`);
}
@@ -261,7 +262,7 @@ module.exports = class Peer {
let consumer;
try {
consumer = await consumerTransport.consume({
producerId: producer_id,
producerId,
rtpCapabilities,
enableRtx: true, // Enable NACK for OPUS.
paused: true,
@@ -284,8 +285,8 @@ module.exports = class Peer {
try {
await consumer.setPreferredLayers({
spatialLayer: spatialLayer,
temporalLayer: temporalLayer,
spatialLayer,
temporalLayer,
});
log.debug(`Consumer [${type}-${kind}] ----->`, {
scalabilityMode,
@@ -310,7 +311,7 @@ module.exports = class Peer {
return {
consumer: consumer,
params: {
producerId: producer_id,
producerId,
id: id,
kind: kind,
rtpParameters: rtpParameters,

عرض الملف

@@ -707,30 +707,30 @@ module.exports = class Room {
// CONSUME
// ####################################################
async consume(socket_id, consumer_transport_id, producer_id, rtpCapabilities) {
async consume(socket_id, consumer_transport_id, producerId, rtpCapabilities, type) {
if (!this.peers.has(socket_id)) {
throw new Error(`Peer with socket ID ${socket_id} not found in the room`);
}
if (!this.router.canConsume({ producerId: producer_id, rtpCapabilities })) {
throw new Error(`Cannot consume producer with ID ${producer_id}, router validation failed`);
if (!this.router.canConsume({ producerId, rtpCapabilities })) {
throw new Error(`Cannot consume producer with ID ${producerId} type ${type}, router validation failed`);
}
const peer = this.getPeer(socket_id);
let peerConsumer;
try {
peerConsumer = await peer.createConsumer(consumer_transport_id, producer_id, rtpCapabilities);
peerConsumer = await peer.createConsumer(consumer_transport_id, producerId, rtpCapabilities);
} catch (error) {
log.error(`Error creating consumer for peer with socket ID ${socket_id}`, error);
throw new Error(
`Failed to create consumer with transport ID ${consumer_transport_id} and producer ID ${producer_id} for peer ${socket_id}`,
`Failed to create consumer with transport ID ${consumer_transport_id} and producer ID ${producerId} type ${type} for peer ${socket_id}`,
);
}
if (!peerConsumer) {
throw new Error(
`Consumer creation failed for transport ID ${consumer_transport_id} and producer ID ${producer_id}`,
`Consumer creation failed for transport ID ${consumer_transport_id} and producer ID ${producerId}`,
);
}

عرض الملف

@@ -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.63
* @version 1.6.64
*
*/
@@ -1674,7 +1674,7 @@ function startServer() {
}
});
socket.on('consume', async ({ consumerTransportId, producerId, rtpCapabilities }, callback) => {
socket.on('consume', async ({ consumerTransportId, producerId, rtpCapabilities, type }, callback) => {
if (!roomExists(socket)) {
return callback({ error: 'Room not found' });
}
@@ -1684,10 +1684,11 @@ function startServer() {
const { peer_name } = peer || 'undefined';
try {
const params = await room.consume(socket.id, consumerTransportId, producerId, rtpCapabilities);
const params = await room.consume(socket.id, consumerTransportId, producerId, rtpCapabilities, type);
log.debug('Consuming', {
peer_name: peer_name,
producer_type: type,
producer_id: producerId,
consumer_id: params ? params.id : undefined,
});
@@ -1711,21 +1712,21 @@ function startServer() {
room.closeProducer(socket.id, data.producer_id);
});
socket.on('pauseProducer', async ({ producer_id }, callback) => {
socket.on('pauseProducer', async ({ producer_id, type }, callback) => {
if (!roomExists(socket)) return;
const peer = getPeer(socket);
if (!peer) {
return callback({
error: `Peer with ID: ${socket.id} for producer with id "${producer_id}" not found`,
error: `Peer with ID: ${socket.id} for producer with id "${producer_id}" type "${type}" not found`,
});
}
const producer = peer.getProducer(producer_id);
if (!producer) {
return callback({ error: `Producer with id "${producer_id}" not found` });
return callback({ error: `Producer with id "${producer_id}" type "${type}" not found` });
}
try {
@@ -1733,7 +1734,7 @@ function startServer() {
const { peer_name } = peer || 'undefined';
log.debug('Producer paused', { peer_name: peer_name, producer_id: producer_id });
log.debug('Producer paused', { peer_name, producer_id, type });
callback('successfully');
} catch (error) {
@@ -1741,21 +1742,21 @@ function startServer() {
}
});
socket.on('resumeProducer', async ({ producer_id }, callback) => {
socket.on('resumeProducer', async ({ producer_id, type }, callback) => {
if (!roomExists(socket)) return;
const peer = getPeer(socket);
if (!peer) {
return callback({
error: `peer with ID: "${socket.id}" for producer with id "${producer_id}" not found`,
error: `peer with ID: "${socket.id}" for producer with id "${producer_id}" type "${type}" not found`,
});
}
const producer = peer.getProducer(producer_id);
if (!producer) {
return callback({ error: `producer with id "${producer_id}" not found` });
return callback({ error: `producer with id "${producer_id}" type "${type}" not found` });
}
try {
@@ -1763,7 +1764,7 @@ function startServer() {
const { peer_name } = peer || 'undefined';
log.debug('Producer resumed', { peer_name: peer_name, producer_id: producer_id });
log.debug('Producer resumed', { peer_name, producer_id, type });
callback('successfully');
} catch (error) {
@@ -1771,21 +1772,21 @@ function startServer() {
}
});
socket.on('resumeConsumer', async ({ consumer_id }, callback) => {
socket.on('resumeConsumer', async ({ consumer_id, type }, callback) => {
if (!roomExists(socket)) return;
const peer = getPeer(socket);
if (!peer) {
return callback({
error: `peer with ID: "${socket.id}" for consumer with id "${consumer_id}" not found`,
error: `peer with ID: "${socket.id}" for consumer with id "${consumer_id}" type "${type}" not found`,
});
}
const consumer = peer.getConsumer(consumer_id);
if (!consumer) {
return callback({ error: `consumer with id "${consumer_id}" not found` });
return callback({ error: `consumer with id "${consumer_id}" type "${type}" not found` });
}
try {
@@ -1793,7 +1794,7 @@ function startServer() {
const { peer_name } = peer || 'undefined';
log.debug('Consumer resumed', { peer_name: peer_name, consumer_id: consumer_id });
log.debug('Consumer resumed', { peer_name, consumer_id, type });
callback('successfully');
} catch (error) {