[mirotalksfu] - refactoring
هذا الالتزام موجود في:
@@ -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 = {};
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم