Compare commits
20 Commits
develop
...
cf6725dec4
Author | SHA1 | Date | |
---|---|---|---|
cf6725dec4 | |||
512d0f8bed | |||
4b9987efe8 | |||
51cf3534a1 | |||
f206dfc5ae | |||
f5d45ce3a3 | |||
9560d33870 | |||
189c262b32 | |||
e53f4c353f | |||
d91fcfd584 | |||
12ad433c9f | |||
2c777f4746 | |||
52222fc255 | |||
7d5d471d7d | |||
bdda13e0d5 | |||
1fb5df4cde | |||
ea1c8e7e80 | |||
21b4b6d04f | |||
a1d172ee07 | |||
0c917d6477 |
59
app.js
59
app.js
@ -289,11 +289,15 @@ peers.on('connection', async (socket) => {
|
||||
);
|
||||
|
||||
videoCalls[callId].receiverVideoProducer.on('transportclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('transport for this producer closed', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
videoCalls[callId].receiverVideoProducer.observer.on("close", () => {
|
||||
console.log(`[close-producer] receiverVideoProducer receiver --EMIT--> initiator | callId: ${callId} | kind: ${kind}`);
|
||||
videoCalls[callId].initiatorSocket.emit('close-producer', { callId, kind });
|
||||
})
|
||||
|
||||
// Send back to the client the Producer's id
|
||||
callback &&
|
||||
callback({
|
||||
@ -310,11 +314,15 @@ peers.on('connection', async (socket) => {
|
||||
);
|
||||
|
||||
videoCalls[callId].initiatorVideoProducer.on('transportclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('transport for this producer closed', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
videoCalls[callId].initiatorVideoProducer.observer.on("close", () => {
|
||||
console.log(`[close-producer] initiatorVideoProducer initiator --EMIT--> receiver | callId: ${callId} | kind: ${kind}`);
|
||||
videoCalls[callId].receiverSocket.emit('close-producer', { callId, kind });
|
||||
})
|
||||
|
||||
callback &&
|
||||
callback({
|
||||
id: videoCalls[callId].initiatorVideoProducer.id,
|
||||
@ -332,11 +340,15 @@ peers.on('connection', async (socket) => {
|
||||
);
|
||||
|
||||
videoCalls[callId].receiverAudioProducer.on('transportclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('transport for this producer closed', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
videoCalls[callId].receiverAudioProducer.observer.on("close", () => {
|
||||
console.log(`[close-producer] receiverAudioProducer receiver --EMIT--> initiator | callId: ${callId} | kind: ${kind}`);
|
||||
videoCalls[callId].initiatorSocket.emit('close-producer', { callId, kind });
|
||||
})
|
||||
|
||||
// Send back to the client the Producer's id
|
||||
callback &&
|
||||
callback({
|
||||
@ -353,11 +365,15 @@ peers.on('connection', async (socket) => {
|
||||
);
|
||||
|
||||
videoCalls[callId].initiatorAudioProducer.on('transportclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('transport for this producer closed', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
videoCalls[callId].initiatorAudioProducer.observer.on("close", () => {
|
||||
console.log(`[close-producer] initiatorAudioProducer initiator --EMIT--> receiver | callId: ${callId} | kind: ${kind}`);
|
||||
videoCalls[callId].receiverSocket.emit('close-producer', { callId, kind });
|
||||
})
|
||||
|
||||
// Send back to the client the Producer's id
|
||||
callback &&
|
||||
callback({
|
||||
@ -476,7 +492,7 @@ peers.on('connection', async (socket) => {
|
||||
socket.on('consumer-resume', () => {
|
||||
try {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log(`[consumer-resume] callId ${callId}`);
|
||||
console.log(`[consumer-resume] callId: ${callId}`);
|
||||
if (isInitiator(callId, socket.id)) {
|
||||
videoCalls[callId]?.initiatorConsumerVideo?.resume();
|
||||
videoCalls[callId]?.initiatorConsumerAudio?.resume();
|
||||
@ -488,6 +504,25 @@ peers.on('connection', async (socket) => {
|
||||
console.log(`ERROR | consumer-resume | callId ${socketDetails[socket.id]} | ${error.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
socket.on('close-producer', ({ callId, kind}) => {
|
||||
try {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log(`[close-producer] callId: ${callId} | kind: kind`);
|
||||
if (isInitiator(callId, socket.id)) {
|
||||
console.log(`[close-producer] initiator`);
|
||||
if (kind === 'video') videoCalls[callId].initiatorVideoProducer.close()
|
||||
else if (kind === 'audio') videoCalls[callId].initiatorAudioProducer.close()
|
||||
} else {
|
||||
console.log(`[close-producer] receiver`);
|
||||
if (kind === 'video') videoCalls[callId].receiverVideoProducer.close()
|
||||
else if (kind === 'audio') videoCalls[callId].receiverAudioProducer.close()
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(`ERROR | consumer-resume | callId ${socketDetails[socket.id]} | ${error.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
const consumeVideo = async (callId, socketId, rtpCapabilities) => {
|
||||
@ -500,18 +535,10 @@ const consumeVideo = async (callId, socketId, rtpCapabilities) => {
|
||||
|
||||
// https://mediasoup.org/documentation/v3/mediasoup/api/#consumer-on-transportclose
|
||||
videoCalls[callId].initiatorConsumerVideo.on('transportclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('transport close from consumer', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
// https://mediasoup.org/documentation/v3/mediasoup/api/#consumer-on-producerclose
|
||||
videoCalls[callId].initiatorConsumerVideo.on('producerclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('producer of consumer closed', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
return {
|
||||
id: videoCalls[callId].initiatorConsumerVideo.id,
|
||||
producerId: videoCalls[callId].receiverVideoProducer.id,
|
||||
@ -531,12 +558,6 @@ const consumeVideo = async (callId, socketId, rtpCapabilities) => {
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
videoCalls[callId].receiverConsumerVideo.on('producerclose', () => {
|
||||
const callId = socketDetails[socket.id];
|
||||
console.log('producer of consumer closed', callId);
|
||||
closeCall(callId);
|
||||
});
|
||||
|
||||
return {
|
||||
id: videoCalls[callId].receiverConsumerVideo.id,
|
||||
producerId: videoCalls[callId].initiatorVideoProducer.id,
|
||||
|
@ -20353,7 +20353,7 @@ module.exports = yeast;
|
||||
},{}],94:[function(require,module,exports){
|
||||
module.exports = {
|
||||
hubAddress: 'https://hub.dev.linx.safemobile.com/',
|
||||
mediasoupAddress: 'https://video.safemobile.org/',
|
||||
mediasoupAddress: 'https://testing.video.safemobile.org/',
|
||||
}
|
||||
},{}],95:[function(require,module,exports){
|
||||
const io = require('socket.io-client')
|
||||
@ -20457,6 +20457,15 @@ setTimeout(() => {
|
||||
console.log(`🟢 new-producer | callId: ${callId} | kind: ${kind} | Ready to consume`);
|
||||
connectRecvTransport();
|
||||
})
|
||||
|
||||
socket.on('close-producer', ({ callId, kind }) => {
|
||||
console.log(`🔴 close-producer | callId: ${callId} | kind: ${kind}`);
|
||||
if (kind === 'video') {
|
||||
consumerVideo.close()
|
||||
remoteVideo.srcObject = null
|
||||
}
|
||||
else if (king === 'audio') consumerAudio.close()
|
||||
})
|
||||
}
|
||||
|
||||
if (IS_PRODUCER === true) {
|
||||
@ -20850,6 +20859,36 @@ const getVideoTrask = async (videoParams) => {
|
||||
console.log('transport closed so consumer closed')
|
||||
})
|
||||
|
||||
consumerVideo.on('producerclose', () => {
|
||||
console.log('===================1 consumerVideo producerclose');
|
||||
});
|
||||
|
||||
consumerVideo.on("producerclose", () => {
|
||||
console.log('====================2 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.on("close", () => {
|
||||
console.log('====================3 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.on("close-producer", () => {
|
||||
console.log('====================4 consumerVideo producerclose');
|
||||
})
|
||||
|
||||
|
||||
|
||||
consumerVideo.observer.on('producerclose', () => {
|
||||
console.log('===================11 consumerVideo producerclose');
|
||||
});
|
||||
|
||||
consumerVideo.observer.on("producerclose", () => {
|
||||
console.log('====================22 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.observer.on("close", () => {
|
||||
console.log('====================33 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.observer.on("close-producer", () => {
|
||||
console.log('====================44 consumerVideo producerclose');
|
||||
})
|
||||
|
||||
return consumerVideo.track
|
||||
}
|
||||
|
||||
@ -20865,6 +20904,14 @@ const getAudioTrask = async (audioParams) => {
|
||||
console.log('transport closed so consumer closed')
|
||||
})
|
||||
|
||||
consumerAudio.on('producerclose', () => {
|
||||
console.log('===================1 consumerAudio producerclose');
|
||||
});
|
||||
|
||||
consumerAudio.on("producerclose", () => {
|
||||
console.log('====================2 consumerAudio producerclose');
|
||||
})
|
||||
|
||||
const audioTrack = consumerAudio.track
|
||||
|
||||
audioTrack.applyConstraints({
|
||||
|
@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
hubAddress: 'https://hub.dev.linx.safemobile.com/',
|
||||
mediasoupAddress: 'https://video.safemobile.org/',
|
||||
mediasoupAddress: 'https://testing.video.safemobile.org/',
|
||||
}
|
@ -99,6 +99,15 @@ setTimeout(() => {
|
||||
console.log(`🟢 new-producer | callId: ${callId} | kind: ${kind} | Ready to consume`);
|
||||
connectRecvTransport();
|
||||
})
|
||||
|
||||
socket.on('close-producer', ({ callId, kind }) => {
|
||||
console.log(`🔴 close-producer | callId: ${callId} | kind: ${kind}`);
|
||||
if (kind === 'video') {
|
||||
consumerVideo.close()
|
||||
remoteVideo.srcObject = null
|
||||
}
|
||||
else if (king === 'audio') consumerAudio.close()
|
||||
})
|
||||
}
|
||||
|
||||
if (IS_PRODUCER === true) {
|
||||
@ -492,6 +501,36 @@ const getVideoTrask = async (videoParams) => {
|
||||
console.log('transport closed so consumer closed')
|
||||
})
|
||||
|
||||
consumerVideo.on('producerclose', () => {
|
||||
console.log('===================1 consumerVideo producerclose');
|
||||
});
|
||||
|
||||
consumerVideo.on("producerclose", () => {
|
||||
console.log('====================2 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.on("close", () => {
|
||||
console.log('====================3 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.on("close-producer", () => {
|
||||
console.log('====================4 consumerVideo producerclose');
|
||||
})
|
||||
|
||||
|
||||
|
||||
consumerVideo.observer.on('producerclose', () => {
|
||||
console.log('===================11 consumerVideo producerclose');
|
||||
});
|
||||
|
||||
consumerVideo.observer.on("producerclose", () => {
|
||||
console.log('====================22 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.observer.on("close", () => {
|
||||
console.log('====================33 consumerVideo producerclose');
|
||||
})
|
||||
consumerVideo.observer.on("close-producer", () => {
|
||||
console.log('====================44 consumerVideo producerclose');
|
||||
})
|
||||
|
||||
return consumerVideo.track
|
||||
}
|
||||
|
||||
@ -507,6 +546,14 @@ const getAudioTrask = async (audioParams) => {
|
||||
console.log('transport closed so consumer closed')
|
||||
})
|
||||
|
||||
consumerAudio.on('producerclose', () => {
|
||||
console.log('===================1 consumerAudio producerclose');
|
||||
});
|
||||
|
||||
consumerAudio.on("producerclose", () => {
|
||||
console.log('====================2 consumerAudio producerclose');
|
||||
})
|
||||
|
||||
const audioTrack = consumerAudio.track
|
||||
|
||||
audioTrack.applyConstraints({
|
||||
|
Reference in New Issue
Block a user