[mirotalksfu] - implement direct join

هذا الالتزام موجود في:
Miroslav Pejic
2022-01-02 11:34:57 +01:00
الأصل ede19a6ddd
التزام 5a3114a853
3 ملفات معدلة مع 78 إضافات و15 حذوفات

عرض الملف

@@ -29,13 +29,12 @@ let participantsCount = 0;
let rc = null;
let producer = null;
let peer_name = 'peer_' + getRandomNumber(5);
let room_id = getRoomId();
let peer_name = getPeerName();
let peer_geo = null;
let peer_info = null;
let room_id = location.pathname.substring(6);
let isEnumerateDevices = false;
let isAudioAllowed = false;
let isVideoAllowed = false;
let isScreenAllowed = false;
@@ -59,16 +58,6 @@ let isButtonsVisible = false;
const socket = io();
function getRandomNumber(length) {
let result = '';
let characters = '0123456789';
let charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
function initClient() {
if (!DetectRTC.isMobileDevice) {
setTippy('shareButton', 'Share the room', 'right');
@@ -121,6 +110,30 @@ function setTippy(elem, content, placement) {
});
}
// ####################################################
// GET ROOM ID
// ####################################################
function getRoomId() {
let qs = new URLSearchParams(window.location.search);
let queryRoomId = qs.get('room');
let roomId = queryRoomId ? queryRoomId : location.pathname.substring(6);
if (roomId == '') {
roomId = makeId(12);
}
return roomId;
}
function makeId(length) {
let result = '';
let characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
// ####################################################
// ENUMERATE DEVICES
// ####################################################
@@ -220,6 +233,11 @@ function appenChild(device, el) {
// SOME PEER INFO
// ####################################################
function getPeerName() {
let qs = new URLSearchParams(window.location.search);
return qs.get('name');
}
function getPeerInfo() {
peer_info = {
detect_rtc_version: DetectRTC.version,
@@ -254,6 +272,14 @@ function getPeerGeoLocation() {
function whoAreYou() {
console.log('04 ----> Who are you');
if (peer_name) {
checkMedia();
getPeerInfo();
shareRoom();
joinRoom(peer_name, room_id);
return;
}
Swal.fire({
allowOutsideClick: false,
allowEscapeKey: false,
@@ -307,6 +333,16 @@ function handleVideo(e) {
setColor(startVideoButton, isVideoAllowed ? 'white' : 'red');
}
function checkMedia() {
let qs = new URLSearchParams(window.location.search);
let audio = qs.get('audio').toLowerCase();
let video = qs.get('video').toLowerCase();
let queryPeerAudio = audio === '1' || audio === 'true';
let queryPeerVideo = video === '1' || video === 'true';
if (queryPeerAudio != null) isAudioAllowed = queryPeerAudio;
if (queryPeerVideo != null) isVideoAllowed = queryPeerVideo;
}
// ####################################################
// SHARE ROOM
// ####################################################