novnc webrtc

This commit is contained in:
Daniel Hervás Rodao 2021-06-28 09:45:56 +02:00
parent 9dad2c131b
commit a7beef5fe2
2 changed files with 26 additions and 17 deletions

View File

@ -51,6 +51,7 @@ async function startLocalStream(){
// Obtener el stream del usuario // Obtener el stream del usuario
if(!canvas){ if(!canvas){
console.log('[NOVNC] Error: no CANVAS'); console.log('[NOVNC] Error: no CANVAS');
users = false;
return return
} }
stream = canvas.captureStream(); stream = canvas.captureStream();

View File

@ -328,6 +328,8 @@
<script> <script>
const localVideo = document.querySelector('#localVideo'); const localVideo = document.querySelector('#localVideo');
var stream_set = false; var stream_set = false;
let room_name;
let users = false;
var canvas = document.querySelector('#noVNC_container canvas'); var canvas = document.querySelector('#noVNC_container canvas');
// Buscar el canvas // Buscar el canvas
@ -343,39 +345,32 @@
stream_set = true; stream_set = true;
} }
} }
},500); },1000);
// Creo la sala
/////// Control de streamws room_name = Date.now()+Math.round(Math.random()*10000);
console.log('[NOVNC] room name: ', room_name);
// Creo WS de stream // Creo WS de stream
const streamws = new WebSocket( const streamws = new WebSocket(
'ws://' + 'ws://' +
'127.0.0.1:8000' + '127.0.0.1:8000' +
'/ws/stream/' + '/ws/stream/' +
'd' + room_name +
'/' '/'
); );
console.log('[NOVNC] WebSocket streamws creado'); console.log('[NOVNC] WebSocket streamws creado');
// HAndler ws
window.addEventListener('message', function(e){
console.log('[NOVNC] mensaje: ', e.data);
if(e.data === 'start'){
console.log('Empezar el stream');
// Comprobar usuarios
checkUsers();
}
});
///// Esto va en ws_stream.js
streamws.onmessage = function(e){ streamws.onmessage = function(e){
let message_data = JSON.parse(event.data); let message_data = JSON.parse(event.data);
console.log('[NOVNC] streamws: ', message_data); console.log('[NOVNC] streamws: ', message_data);
if(message_data['type'] == 'checkusers'){ if(message_data['type'] == 'checkusers'){
if(message_data['users']){ if(message_data['users']){
console.log('[NOVNC] usuarios correctos'); console.log('[NOVNC] usuarios correctos');
users = true;
startLocalStream(); startLocalStream();
}else{ }else{
console.log('[NOVNC] usuarios incorrectos'); console.log('[NOVNC] usuarios incorrectos');
users = false;
} }
}else if(message_data['type'] == 'candidate'){ }else if(message_data['type'] == 'candidate'){
console.log('[NOVNC] Candidate received'); console.log('[NOVNC] Candidate received');
@ -391,8 +386,21 @@
window.location.pathname = '/'; window.location.pathname = '/';
} }
} }
//////// window.addEventListener('message', function(e){
console.log('[NOVNC] mensaje: ', e.data);
if(e.data === 'start'){
console.log('Empezar el stream');
// Envío la sala del stream al padre
parent.postMessage(JSON.stringify({'stream':room_name}),'*');
// Comprobar usuarios
setInterval(function(){
if(!users){
checkUsers();
}
},2000);
}
});
// window.onload = function(){ // window.onload = function(){
// parent.postMessage(canvas, '*'); // parent.postMessage(canvas, '*');