Fix peer connexion for two player with screen sharing
This commit is contained in:
parent
a8f27e6084
commit
4b72958193
4 changed files with 45 additions and 64 deletions
|
@ -63,14 +63,6 @@ export class SimplePeer {
|
|||
this.receiveWebrtcSignal(message);
|
||||
});
|
||||
|
||||
this.Connection.receiveWebrtcScreenSharingStart((message: WebRtcDisconnectMessageInterface) => {
|
||||
console.log("receiveWebrtcScreenSharingStart => initiator", message.userId === this.Connection.userId);
|
||||
if(message.userId === this.Connection.userId) {
|
||||
console.log("receiveWebrtcScreenSharingStart => initiator => create peer connexion");
|
||||
this.receiveWebrtcScreenSharingStart(message);
|
||||
}
|
||||
});
|
||||
|
||||
//receive signal by gemer
|
||||
this.Connection.receiveWebrtcScreenSharingSignal((message: WebRtcDisconnectMessageInterface) => {
|
||||
this.receiveWebrtcScreenSharingSignal(message);
|
||||
|
@ -106,31 +98,6 @@ export class SimplePeer {
|
|||
this.startWebRtc();
|
||||
}
|
||||
|
||||
private receiveWebrtcScreenSharingStart(data: WebRtcDisconnectMessageInterface) {
|
||||
console.log("receiveWebrtcScreenSharingStart", data);
|
||||
let screenSharingUser: UserSimplePeerInterface = {
|
||||
userId: data.userId,
|
||||
initiator: this.Connection.userId === data.userId
|
||||
};
|
||||
let PeerConnectionScreenSharing = this.createPeerConnection(screenSharingUser, true);
|
||||
if (!PeerConnectionScreenSharing) {
|
||||
console.error("receiveWebrtcScreenSharingStart => cannot create peer connexion", PeerConnectionScreenSharing);
|
||||
return;
|
||||
}
|
||||
console.log(`receiveWebrtcScreenSharingStart => ${screenSharingUser.initiator}`, mediaManager.localScreenCapture)
|
||||
if (!mediaManager.localScreenCapture) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
for (const track of mediaManager.localScreenCapture.getTracks()) {
|
||||
PeerConnectionScreenSharing.addTrack(track, mediaManager.localScreenCapture);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("updatedScreenSharing => ", e);
|
||||
}
|
||||
mediaManager.addStreamRemoteScreenSharing(screenSharingUser.userId, mediaManager.localScreenCapture);
|
||||
}
|
||||
|
||||
/**
|
||||
* server has two people connected, start the meet
|
||||
*/
|
||||
|
@ -464,7 +431,28 @@ export class SimplePeer {
|
|||
|
||||
updatedScreenSharing() {
|
||||
if (mediaManager.localScreenCapture) {
|
||||
this.Connection.sendWebrtcScreenSharingStart(this.WebRtcRoomId);
|
||||
|
||||
//this.Connection.sendWebrtcScreenSharingStart(this.WebRtcRoomId);
|
||||
|
||||
if(!this.Connection.userId){
|
||||
return;
|
||||
}
|
||||
let screenSharingUser: UserSimplePeerInterface = {
|
||||
userId: this.Connection.userId,
|
||||
initiator: true
|
||||
};
|
||||
let PeerConnectionScreenSharing = this.createPeerConnection(screenSharingUser, true);
|
||||
if (!PeerConnectionScreenSharing) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
for (const track of mediaManager.localScreenCapture.getTracks()) {
|
||||
PeerConnectionScreenSharing.addTrack(track, mediaManager.localScreenCapture);
|
||||
}
|
||||
}catch (e) {
|
||||
console.error("updatedScreenSharing => ", e);
|
||||
}
|
||||
mediaManager.addStreamRemoteScreenSharing(screenSharingUser.userId, mediaManager.localScreenCapture);
|
||||
} else {
|
||||
if (!this.Connection.userId || !this.PeerScreenSharingConnectionArray.has(this.Connection.userId)) {
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue