[mirotalksfu] - added raise hand & turn-off audio-video

هذا الالتزام موجود في:
Miroslav Pejic
2021-09-18 17:59:32 +02:00
الأصل 9f59886c0c
التزام a265f669b0
9 ملفات معدلة مع 287 إضافات و81 حذوفات

عرض الملف

@@ -10,11 +10,32 @@ module.exports = class Peer {
this.peer_name = data.peer_info.peer_name;
this.peer_audio = data.peer_info.peer_audio;
this.peer_video = data.peer_info.peer_video;
this.peer_hand = data.peer_info.peer_hand;
this.transports = new Map();
this.consumers = new Map();
this.producers = new Map();
}
// ####################################################
// UPDATE PEER INFO
// ####################################################
updatePeerInfo(data) {
switch (data.type) {
case 'audio':
case 'audioType':
this.peer_info.peer_audio = data.status;
break;
case 'video':
case 'videoType':
this.peer_info.peer_video = data.status;
break;
case 'hand':
this.peer_info.peer_hand = data.status;
break;
}
}
// ####################################################
// TRANSPORT
// ####################################################

عرض الملف

@@ -219,7 +219,18 @@ io.on('connection', (socket) => {
socket.on('peerAction', (data) => {
log.debug('Peer action:', data);
roomList.get(socket.room_id).sendTo(data.peer_id, 'peerAction', data);
if (data.broadcast) {
roomList.get(socket.room_id).broadCast(data.peer_id, 'peerAction', data);
} else {
roomList.get(socket.room_id).sendTo(data.peer_id, 'peerAction', data);
}
});
socket.on('updatePeerInfo', (data) => {
log.debug('Peer info update:', data);
// peer_info hand raise Or lower
roomList.get(socket.room_id).getPeers().get(socket.id).updatePeerInfo(data);
roomList.get(socket.room_id).broadCast(socket.id, 'updatePeerInfo', data);
});
socket.on('join', (data, cb) => {
@@ -290,16 +301,26 @@ io.on('connection', (socket) => {
return callback({ error: 'Room not found' });
}
let peer_name = getPeerName(false);
let producer_id = await roomList
.get(socket.room_id)
.produce(socket.id, producerTransportId, rtpParameters, kind);
log.debug('Produce', {
kind: kind,
peer_name: getPeerName(false),
peer_name: peer_name,
producer_id: producer_id,
});
// peer_info audio Or video ON
let data = {
peer_name: peer_name,
type: kind,
status: true,
};
roomList.get(socket.room_id).getPeers().get(socket.id).updatePeerInfo(data);
callback({
producer_id,
});
@@ -323,10 +344,12 @@ io.on('connection', (socket) => {
callback(params);
});
socket.on('producerClosed', ({ producer_id }) => {
log.debug('Producer close', getPeerName());
socket.on('producerClosed', (data) => {
log.debug('Producer close', data);
roomList.get(socket.room_id).closeProducer(socket.id, producer_id);
// peer_info audio Or video OFF
roomList.get(socket.room_id).getPeers().get(socket.id).updatePeerInfo(data);
roomList.get(socket.room_id).closeProducer(socket.id, data.producer_id);
});
socket.on('resume', async (_, callback) => {