From b0fad5f1db8cfb82f8e8d7c4e5b9ea2dcbfc3827 Mon Sep 17 00:00:00 2001 From: Sergiu Toma Date: Tue, 27 Sep 2022 12:43:07 +0300 Subject: [PATCH] LINXD-2197: On peer disconnect delete the call; Added log when call is already deleted; Added log when user send multiple createWebRtcTransport --- app.js | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/app.js b/app.js index dfaf6f1..242c464 100644 --- a/app.js +++ b/app.js @@ -116,6 +116,8 @@ const closeCall = (callId) => { videoCalls[callId]?.producerTransport.close(); videoCalls[callId].router.close(); delete videoCalls[callId]; + } else { + console.log(`The call with id ${callId} has already been deleted`); } } catch (error) { console.log(`ERROR | closeCall | callid ${callId} | ${error.message}`); @@ -146,8 +148,10 @@ peers.on('connection', async socket => { // It is triggered when the peer is disconnected socket.on('disconnect', () => { - console.log('peer disconnected | socket.id', socket.id); + const callId = socketDetails[socket.id]; + console.log(`disconnect | socket ${socket.id} | callId ${callId}`); delete socketDetails[socket.id]; + closeCall(callId); }); /* @@ -186,10 +190,18 @@ peers.on('connection', async socket => { try { const callId = socketDetails[socket.id]; console.log(`[createWebRtcTransport] sender ${sender} | callId ${callId}`); - if (sender && !videoCalls[callId].producerTransport) { - videoCalls[callId].producerTransport = await createWebRtcTransportLayer(callId, callback) - } else if (!sender && !videoCalls[callId].consumerTransport) { - videoCalls[callId].consumerTransport = await createWebRtcTransportLayer(callId, callback) + if (sender) { + if (!videoCalls[callId].producerTransport) { + videoCalls[callId].producerTransport = await createWebRtcTransportLayer(callId, callback); + } else { + console.log(`producerTransport has already been defined | callId ${callId}`); + } + } else if (!sender) { + if (!videoCalls[callId].consumerTransport) { + videoCalls[callId].consumerTransport = await createWebRtcTransportLayer(callId, callback); + } else { + console.log(`consumerTransport has already been defined | callId ${callId}`); + } } } catch (error) { console.log(`ERROR | createWebRtcTransport | callId ${callId} | sender ${sender} | ${error.message}`); @@ -245,7 +257,7 @@ peers.on('connection', async socket => { console.log(`[transport-recv-connect] socket.id ${socket.id} | callId ${callId}`); await videoCalls[callId].consumerTransport.connect({ dtlsParameters }); } catch (error) { - console.log(`ERROR | transport-recv-connect | callId ${socketDetails[socket.id]} | ERROR`); + console.log(`ERROR | transport-recv-connect | callId ${socketDetails[socket.id]} | ${error.message}`); } })