This commit is contained in:
yumoqing 2024-09-24 10:38:47 +08:00
parent 982f5eedc5
commit 9dab708301

View File

@ -1,5 +1,62 @@
var bricks = window.bricks || {} var bricks = window.bricks || {}
bricks.Signaling = class {
/*
{
signaling_url:
info:
multiple:false
}
*/
constructor(opts){
this.signaling_url = opts.signaling_url;
this.info = opts.info;
this.peers = [];
this.sessions = {};
this.init_websocket();
}
init_websocket(){
this.socket = new WebSocket(this.signaling_url);
this.socket.onmessage = this.signaling_message_handle.bind(this);
this.socket.onopen = this.signaling_login.bind(this);
this.socket.onclose = function(){
this.init_websockset();
};
this.socket.onerror = function(){
try {
this.socket.close();
} catch(e){
console.log('error,', e);
}
};
}
login(){
var d = {
type:'login',
info:this.info
}
this.send_datad);
}
logout(){
var d= {
type:'logout',
info:this.info
}
this.send_data(d);
}
send_data(d){
var s = JSON.stringify(d);
self.socket.send(s);
}
socket_send(s){
self.socket.send(s);
}
}
bricks.RTCSession = class extends bricks.VBox {
}
bricks.VideoBox = class extends bricks.JsWidget { bricks.VideoBox = class extends bricks.JsWidget {
create(){ create(){
this.dom_element = this._create('video'); this.dom_element = this._create('video');
@ -77,8 +134,19 @@ bricks.RTCClient = class extends bricks.VBox {
this.socket = new WebSocket(this.signaling_url); this.socket = new WebSocket(this.signaling_url);
this.socket.onmessage = this.signaling_message_handle.bind(this); this.socket.onmessage = this.signaling_message_handle.bind(this);
this.socket.onopen = this.signaling_login.bind(this); this.socket.onopen = this.signaling_login.bind(this);
this.socket.onclose = function(){ console.log('888888 this.socket is closed', this.socket); }; this.socket.onclose = function(){
this.socket.onerror = null; console.log('888888 this.socket is closed', this.socket);
if (this.parent){
this.init_websockset();
}
};
this.socket.onerror = function(){
try {
this.socket.close();
} catch(e){
console.log('error,', e);
}
};
} }
build_head(){ build_head(){
var box = new bricks.HBox({height:'50px'}); var box = new bricks.HBox({height:'50px'});
@ -390,6 +458,11 @@ bricks.RTCClient = class extends bricks.VBox {
}); });
w.open(); w.open();
this.call_close(); this.call_close();
this.dispatch('disconnected', this.peer_info);
return;
}
if (this.pc.connectionState == 'connected'){
this.dispatch('connected', this.peer_info);
} }
} }
ice_g_statechange(event){ ice_g_statechange(event){