This commit is contained in:
yumoqing 2024-08-22 17:46:05 +08:00
parent dc3b05e33d
commit 88884d1bd3

View File

@ -39,6 +39,9 @@ bricks.RTCClient = class extends bricks.VBox {
this.add_widget(this.videobox);
this.pc;
this.onlineList= [];
this.socket = 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);
@ -277,6 +280,11 @@ bricks.RTCClient = class extends bricks.VBox {
console.log(d.type, 'no branch defined');
break;
}
console.log('signal_status=', this.pc.RTCSignalingState,
'iceconnectstate=', this.pc.RTCIceConnectionState,
'connectstate=', this.pc.connectionState,
'peerConnectionState=', this.pc.RTCPeerConnectionState,
'icegatheringstate=', this.pc.RTCIceGatheringState);
}
// 创建 PeerConnection
@ -304,6 +312,7 @@ bricks.RTCClient = class extends bricks.VBox {
this.pc.onicecandidate = this.send_candidate.bind(this, to_info);
this.pc.oniceconnectionstatechange = this.ice_statechange.bind(this);
this.pc.onicegatheringstatechange = this.ice_g_statechange.bind(this);
this.pc.onconnectionstatechange = this.connection_statechange.bind(this);
// 处理远程流添加
this.pc.ontrack = event => {
@ -317,13 +326,16 @@ bricks.RTCClient = class extends bricks.VBox {
console.log('createPeerConnection() finished');
}
async ice_statechange(event){
console.log(`oniceconnectionstatechange, pc.iceConnectionState is ${this.pc.iceConnectionState}.`)
if (this.pc.iceConnectionState == 'disconnected'){
console.log(`oniceconnectionstatechange, pc.iceConnectionState is ${this.pc.iceConnectionState}.`);
if (this.pc.iceConnectionState === 'disconnected'){
if (this.role == 'requester'){
send_offer();
await send_offer();
}
}
}
async connection_statechange(event){
console.log(`onconnectionstatechange, pc.connectionState is ${this.pc.connectionState}.`);
}
ice_g_statechange(event){
console.log(`onicegatheringstatechange, pc.iceGatheringState is ${this.pc.iceGatheringState}.`);
}