[mirotalksfu] - Fix presenter on disconnect
هذا الالتزام موجود في:
@@ -1310,38 +1310,42 @@ function startServer() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
async function isPeerPresenter(room_id, peer_id, peer_name, peer_uuid) {
|
async function isPeerPresenter(room_id, peer_id, peer_name, peer_uuid) {
|
||||||
let isPresenter = false;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (
|
if (!presenters[room_id] || !presenters[room_id][peer_id]) {
|
||||||
typeof presenters[room_id] === 'undefined' ||
|
// Presenter not in the presenters config list, disconnected, or peer_id changed...
|
||||||
typeof presenters[room_id][peer_id] === 'undefined' ||
|
for (const [existingPeerID, presenter] of Object.entries(presenters[room_id] || {})) {
|
||||||
presenters[room_id] === null ||
|
if (presenter.peer_name === peer_name) {
|
||||||
presenters[room_id][peer_id] === null
|
log.info('Presenter found', {
|
||||||
) {
|
room: room_id,
|
||||||
|
peer_id: existingPeerID,
|
||||||
|
peer_name: peer_name,
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
isPresenter =
|
const isPresenter =
|
||||||
(typeof presenters[room_id] === 'object' &&
|
(typeof presenters[room_id] === 'object' &&
|
||||||
Object.keys(presenters[room_id][peer_id]).length > 1 &&
|
Object.keys(presenters[room_id][peer_id]).length > 1 &&
|
||||||
presenters[room_id][peer_id]['peer_name'] === peer_name &&
|
presenters[room_id][peer_id]['peer_name'] === peer_name &&
|
||||||
presenters[room_id][peer_id]['peer_uuid'] === peer_uuid) ||
|
presenters[room_id][peer_id]['peer_uuid'] === peer_uuid) ||
|
||||||
(config.presenters && config.presenters.includes(peer_name));
|
(config.presenters && config.presenters.includes(peer_name));
|
||||||
|
|
||||||
|
log.debug('isPeerPresenter', {
|
||||||
|
room_id: room_id,
|
||||||
|
peer_id: peer_id,
|
||||||
|
peer_name: peer_name,
|
||||||
|
peer_uuid: peer_uuid,
|
||||||
|
isPresenter: isPresenter,
|
||||||
|
});
|
||||||
|
|
||||||
|
return isPresenter;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
log.error('isPeerPresenter', err);
|
log.error('isPeerPresenter', err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
log.debug('isPeerPresenter', {
|
|
||||||
room_id: room_id,
|
|
||||||
peer_id: peer_id,
|
|
||||||
peer_name: peer_name,
|
|
||||||
peer_uuid: peer_uuid,
|
|
||||||
isPresenter: isPresenter,
|
|
||||||
});
|
|
||||||
|
|
||||||
return isPresenter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getPeerGeoLocation(ip) {
|
async function getPeerGeoLocation(ip) {
|
||||||
|
|||||||
المرجع في مشكلة جديدة
حظر مستخدم