Skip to content

Commit

Permalink
[mirotalksfu] - refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
miroslavpejic85 committed Dec 26, 2024
1 parent 98e5bf2 commit 38014cd
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 39 deletions.
11 changes: 9 additions & 2 deletions app/src/Room.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 });

Expand Down Expand Up @@ -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) {
Expand Down
13 changes: 10 additions & 3 deletions app/src/Server.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
*/

Expand Down Expand Up @@ -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);
Expand All @@ -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 });
}
});

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
4 changes: 2 additions & 2 deletions public/js/Room.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
*/

Expand Down Expand Up @@ -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">
Expand Down
45 changes: 14 additions & 31 deletions public/js/RoomClient.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
*/

Expand Down Expand Up @@ -470,6 +470,8 @@ class RoomClient {
})
.catch((error) => {
console.error('Join error:', error);
//...
popupHtmlMessage(null, image.network, 'Join Room', error, 'center', '/', true);
});
}

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand All @@ -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 = {};
Expand Down

0 comments on commit 38014cd

Please sign in to comment.