Close transport, producer/consumer and reset room when we close the video call

This commit is contained in:
2022-08-06 10:05:43 +03:00
parent 3cc5b0dea8
commit a2223529da
4 changed files with 168 additions and 29 deletions

25
app.js
View File

@ -157,9 +157,8 @@ peers.on('connection', async socket => {
console.log(`[transport-produce] Producer ID: ${producer.id} | kind: ${producer.kind}`)
producer.on('transportclose', ({ callId }) => {
console.log('transport for this producer closed ')
producer.close()
router[callId] = null
console.log('transport for this producer closed')
closeRoom();
})
// Send back to the client the Producer's id
@ -190,9 +189,7 @@ peers.on('connection', async socket => {
consumer.on('transportclose', () => {
console.log('transport close from consumer')
producer.close()
consumer.close()
router[callId] = null
closeRoom();
})
consumer.on('producerclose', () => {
@ -227,6 +224,22 @@ peers.on('connection', async socket => {
})
})
const closeRoom = () => {
// Close transport for producer/consumer
// https://mediasoup.org/documentation/v3/mediasoup-client/api/#Transport-methods
producerTransport.close()
consumerTransport.close()
// Close producer and consumer
// https://mediasoup.org/documentation/v3/mediasoup-client/api/#producer-close
// https://mediasoup.org/documentation/v3/mediasoup-client/api/#consumer-closed
producer.close()
consumer.close()
// Reset room
router[callId] = null
}
const createWebRtcTransportLayer = async (callId, callback) => {
try {
// https://mediasoup.org/documentation/v3/mediasoup/api/#WebRtcTransportOptions