Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const handleRouterRtpCapabilitiesRequest = async (jsonMessage) => {
const { routerRtpCapabilities, sessionId } = jsonMessage;
console.log('handleRouterRtpCapabilities() [rtpCapabilities:%o]', routerRtpCapabilities);
try {
const device = new mediasoup.Device();
// Load the mediasoup device with the router rtp capabilities gotten from the server
await device.load({ routerRtpCapabilities });
peer = new Peer(sessionId, device);
createTransport();
} catch (error) {
console.error('handleRouterRtpCapabilities() failed to init device [error:%o]', error);
socket.close();
}
};
export async function main() {
console.log(`starting up ... my peerId is ${myPeerId}`);
try {
device = new mediasoup.Device();
} catch (e) {
if (e.name === 'UnsupportedError') {
console.error('browser not supported for video calls');
return;
} else {
console.error(e);
}
}
// use sendBeacon to tell the server we're disconnecting when
// the page unloads
window.addEventListener('unload', () => sig('leave', {}, true));
}
async function loadDevice(routerRtpCapabilities) {
try {
device = new mediasoup.Device();
} catch (error) {
if (error.name === 'UnsupportedError') {
console.error('browser not supported');
}
}
await device.load({ routerRtpCapabilities });
}
const socketRequest = SocketPromise(socket);
const uiVCodecName = document.querySelector(
"input[name='uiVCodecName']:checked"
).value;
const response = await socketRequest({
type: "START_MEDIASOUP",
vCodecName: uiVCodecName
});
const routerRtpCapabilities = response.data;
console.log("[server] mediasoup router created");
let device = null;
try {
device = new MediasoupClient.Device();
} catch (err) {
if (err.name === "UnsupportedError") {
console.error("mediasoup-client doesn't support this browser");
return;
}
}
global.mediasoup.device = device;
try {
await device.load({ routerRtpCapabilities });
} catch (err) {
if (err.name === "InvalidStateError") {
console.warn("mediasoup device was already loaded");
}
}
async function startMediasoup() {
const socket = global.server.socket;
const socketRequest = SocketPromise(socket);
const response = await socketRequest({ type: "START_MEDIASOUP" });
const routerRtpCapabilities = response.data;
console.log("[server] mediasoup router created");
let device = null;
try {
device = new MediasoupClient.Device();
} catch (err) {
if (err.name === "UnsupportedError") {
console.error("mediasoup-client doesn't support this browser");
return;
}
}
global.mediasoup.device = device;
try {
await device.load({ routerRtpCapabilities });
} catch (err) {
if (err.name === "InvalidStateError") {
console.warn("mediasoup device was already loaded");
}
}