From b834016dcb5df89d2e7175664fb109eedf78c2ab Mon Sep 17 00:00:00 2001 From: Sergiu Toma Date: Tue, 13 Sep 2022 19:56:06 +0300 Subject: [PATCH] LINXD-2209: Create rooms in sequence --- app.js | 64 +++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/app.js b/app.js index 860dae3..3dbabbb 100644 --- a/app.js +++ b/app.js @@ -96,6 +96,36 @@ const mediaCodecs = [ }, ] + let queue = [] + + // queue.push({ + // callId: 1, + // callback: () => console.log('callback') + // }) + // queue.push({ + // callId: 2, + // callback: () => console.log('callback') + // }) + // queue.push({ + // callId: 3, + // callback: () => console.log('callback') + // }) + + + const getRtpCapabilities = (callId, callback) => { + const rtpCapabilities = router[callId].rtpCapabilities + callback({ rtpCapabilities }) + } + + setInterval(async () => { + const { callId, callback } = queue.shift(); + if (router[callId] === undefined) { + router[callId] = await worker.createRouter({ mediaCodecs }) + console.log(`[createRoom] Router ID: ${router[callId].id}`) + getRtpCapabilities(callId, callback) + } + }, 2000); + peers.on('connection', async socket => { console.log('[connection] socketId:', socket.id) socket.emit('connection-success', { @@ -109,27 +139,25 @@ peers.on('connection', async socket => { }) socket.on('createRoom', async ({ callId }, callback) => { - console.log('[createRoom] callId', callId); - console.log('Router length:', Object.keys(router).length); - if (router[callId] === undefined) { - // worker.createRouter(options) - // options = { mediaCodecs, appData } - // mediaCodecs -> defined above - // appData -> custom application data - we are not supplying any - // none of the two are required - router[callId] = await worker.createRouter({ mediaCodecs }) - console.log(`[createRoom] Router ID: ${router[callId].id}`) - } + // console.log('[createRoom] callId', callId); + // console.log('Router length:', Object.keys(router).length); + // if (router[callId] === undefined) { + // // worker.createRouter(options) + // // options = { mediaCodecs, appData } + // // mediaCodecs -> defined above + // // appData -> custom application data - we are not supplying any + // // none of the two are required + // router[callId] = await worker.createRouter({ mediaCodecs }) + // console.log(`[createRoom] Router ID: ${router[callId].id}`) + // } - getRtpCapabilities(callId, callback) + // getRtpCapabilities(callId, callback) + queue.push({ + callId, + callback + }) }) - const getRtpCapabilities = (callId, callback) => { - const rtpCapabilities = router[callId].rtpCapabilities - - callback({ rtpCapabilities }) - } - // Client emits a request to create server side Transport // We need to differentiate between the producer and consumer transports socket.on('createWebRtcTransport', async ({ sender, callId }, callback) => {