[mirotalksfu] - refactoring
هذا الالتزام موجود في:
@@ -109,7 +109,11 @@ module.exports = class Peer {
|
||||
rtpParameters: producer_rtpParameters,
|
||||
});
|
||||
|
||||
const { id, appData, type, rtpParameters } = producer;
|
||||
if (!producer) {
|
||||
throw new Error(`Producer type: ${producer_type} kind: ${producer_kind} not found`);
|
||||
}
|
||||
|
||||
const { id, appData, type, kind, rtpParameters } = producer;
|
||||
|
||||
appData.mediaType = producer_type;
|
||||
|
||||
@@ -119,13 +123,13 @@ 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}] created with ID ${id}`, {
|
||||
log.debug(`Producer [${type}-${kind}] ----->`, {
|
||||
scalabilityMode,
|
||||
spatialLayer,
|
||||
temporalLayer,
|
||||
});
|
||||
} else {
|
||||
log.debug(`Producer of type ${type} created with ID ${id}`);
|
||||
log.debug('Producer ----->', { type: type, kind: kind });
|
||||
}
|
||||
|
||||
producer.on('transportclose', () => {
|
||||
@@ -172,6 +176,10 @@ module.exports = class Peer {
|
||||
paused: false,
|
||||
});
|
||||
|
||||
if (!consumer) {
|
||||
throw new Error(`Consumer for producer ID ${producer_id} not found`);
|
||||
}
|
||||
|
||||
const { id, type, kind, rtpParameters, producerPaused } = consumer;
|
||||
|
||||
if (['simulcast', 'svc'].includes(type)) {
|
||||
@@ -182,13 +190,13 @@ module.exports = class Peer {
|
||||
spatialLayer: spatialLayer,
|
||||
temporalLayer: temporalLayer,
|
||||
});
|
||||
log.debug(`Consumer [${type}] ----->`, {
|
||||
log.debug(`Consumer [${type}-${kind}] ----->`, {
|
||||
scalabilityMode,
|
||||
spatialLayer,
|
||||
temporalLayer,
|
||||
});
|
||||
} else {
|
||||
log.debug('Consumer ----->', { type: type });
|
||||
log.debug('Consumer ----->', { type: type, kind: kind });
|
||||
}
|
||||
|
||||
consumer.on('transportclose', () => {
|
||||
|
||||
@@ -256,6 +256,10 @@ module.exports = class Room {
|
||||
initialAvailableOutgoingBitrate,
|
||||
});
|
||||
|
||||
if (!transport) {
|
||||
throw new Error('Failed to create WebRTC transport');
|
||||
}
|
||||
|
||||
const { id, iceParameters, iceCandidates, dtlsParameters } = transport;
|
||||
|
||||
if (maxIncomingBitrate) {
|
||||
|
||||
@@ -1344,11 +1344,19 @@ function startServer() {
|
||||
|
||||
const room = roomList.get(socket.room_id);
|
||||
|
||||
log.debug('Connect transport', getPeerName(room));
|
||||
const peer_name = getPeerName(room, false);
|
||||
|
||||
log.debug('Connect transport', { peer_name: peer_name, transport_id: transport_id });
|
||||
|
||||
try {
|
||||
await room.connectPeerTransport(socket.id, transport_id, dtlsParameters);
|
||||
|
||||
callback('success');
|
||||
} catch (err) {
|
||||
log.error('Connect transport error', err.message);
|
||||
callback({
|
||||
error: err.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
socket.on('produce', async ({ producerTransportId, kind, appData, rtpParameters }, callback) => {
|
||||
@@ -1371,6 +1379,7 @@ function startServer() {
|
||||
|
||||
await room.getPeers().get(socket.id).updatePeerInfo(data);
|
||||
|
||||
try {
|
||||
const producer_id = await room.produce(
|
||||
socket.id,
|
||||
producerTransportId,
|
||||
@@ -1391,10 +1400,15 @@ function startServer() {
|
||||
if (kind === 'audio') {
|
||||
room.addProducerToAudioLevelObserver({ producerId: producer_id });
|
||||
}
|
||||
|
||||
callback({
|
||||
producer_id,
|
||||
});
|
||||
} catch (err) {
|
||||
log.error('Producer transport error', err.message);
|
||||
callback({
|
||||
error: err.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
socket.on('consume', async ({ consumerTransportId, producerId, rtpCapabilities }, callback) => {
|
||||
@@ -1404,15 +1418,24 @@ function startServer() {
|
||||
|
||||
const room = roomList.get(socket.room_id);
|
||||
|
||||
const peer_name = getPeerName(room, false);
|
||||
|
||||
try {
|
||||
const params = await room.consume(socket.id, consumerTransportId, producerId, rtpCapabilities);
|
||||
|
||||
log.debug('Consuming', {
|
||||
peer_name: getPeerName(room, false),
|
||||
peer_name: peer_name,
|
||||
producer_id: producerId,
|
||||
consumer_id: params ? params.id : undefined,
|
||||
});
|
||||
|
||||
callback(params);
|
||||
} catch (err) {
|
||||
log.error('Consumer transport error', err.message);
|
||||
callback({
|
||||
error: err.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
socket.on('producerClosed', (data) => {
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم