mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-10-30 17:54:59 +00:00 
			
		
		
		
	Update
This commit is contained in:
		| @@ -55,6 +55,10 @@ | |||||||
| 	margin: 0px 5px; | 	margin: 0px 5px; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .call-window .members-area span.ready { | ||||||
|  | 	color: rgb(1, 218, 1); | ||||||
|  | } | ||||||
|  |  | ||||||
| .call-window .videos-area { | .call-window .videos-area { | ||||||
| 	display: flex; | 	display: flex; | ||||||
| 	flex-direction: row; | 	flex-direction: row; | ||||||
|   | |||||||
| @@ -99,6 +99,11 @@ class CallWindow extends CustomEvents { | |||||||
| 				callID: this.conv.ID | 				callID: this.conv.ID | ||||||
| 			}) | 			}) | ||||||
|  |  | ||||||
|  | 			// Apply this list of user | ||||||
|  | 			for(const user of currMembersList) | ||||||
|  | 				if(user.userID != userID()) | ||||||
|  | 					await this.AddMember(user.userID) | ||||||
|  |  | ||||||
| 			// Start to connect to ready pears | 			// Start to connect to ready pears | ||||||
| 			for(const user of currMembersList) | 			for(const user of currMembersList) | ||||||
| 				if(user.userID != userID() && user.ready) | 				if(user.userID != userID() && user.ready) | ||||||
| @@ -108,11 +113,6 @@ class CallWindow extends CustomEvents { | |||||||
| 			await this.startStreaming(); | 			await this.startStreaming(); | ||||||
|  |  | ||||||
|  |  | ||||||
| 			// Apply this list of user |  | ||||||
| 			for(const user of currMembersList) |  | ||||||
| 				if(user.userID != userID()) |  | ||||||
| 					await this.AddMember(user.userID) |  | ||||||
|  |  | ||||||
| 		} catch(e) { | 		} catch(e) { | ||||||
| 			console.error(e) | 			console.error(e) | ||||||
| 			notify("Could not initialize call!", "danger"); | 			notify("Could not initialize call!", "danger"); | ||||||
| @@ -234,6 +234,16 @@ class CallWindow extends CustomEvents { | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Get the name element of a member | ||||||
|  | 	 *  | ||||||
|  | 	 * @param {number} userID The ID of the user to get | ||||||
|  | 	 * @return {HTMLElement|null} | ||||||
|  | 	 */ | ||||||
|  | 	getMemberNameEl(userID) { | ||||||
|  | 		return this.membersArea.querySelector("[data-call-member-name-id=\""+userID+"\"]"); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Remove a member connection | 	 * Remove a member connection | ||||||
| 	 *  | 	 *  | ||||||
| @@ -241,6 +251,10 @@ class CallWindow extends CustomEvents { | |||||||
| 	 */ | 	 */ | ||||||
| 	async RemoveMemberConnection(userID) { | 	async RemoveMemberConnection(userID) { | ||||||
|  |  | ||||||
|  | 		const el = this.getMemberNameEl(userID) | ||||||
|  | 		if(el) | ||||||
|  | 			el.classList.remove("ready") | ||||||
|  |  | ||||||
| 		// Remove video (if any) | 		// Remove video (if any) | ||||||
| 		if(this.videoEls.has(userID)) { | 		if(this.videoEls.has(userID)) { | ||||||
| 			const el = this.videoEls.get(userID); | 			const el = this.videoEls.get(userID); | ||||||
| @@ -266,7 +280,7 @@ class CallWindow extends CustomEvents { | |||||||
| 	async RemoveMember(userID) { | 	async RemoveMember(userID) { | ||||||
| 		 | 		 | ||||||
| 		// Remove user name | 		// Remove user name | ||||||
| 		const el = this.membersArea.querySelector("[data-call-member-name-id=\""+userID+"\"]") | 		const el = this.getMemberNameEl(userID) | ||||||
| 		if(el) | 		if(el) | ||||||
| 			el.remove() | 			el.remove() | ||||||
| 		 | 		 | ||||||
| @@ -291,6 +305,11 @@ class CallWindow extends CustomEvents { | |||||||
| 	 */ | 	 */ | ||||||
| 	addVideoStream(peerID, muted, stream) { | 	addVideoStream(peerID, muted, stream) { | ||||||
|  |  | ||||||
|  | 		// Remove any previous video stream | ||||||
|  | 		if(this.videoEls.has(peerID)) { | ||||||
|  | 			this.videoEls.get(peerID).remove() | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		const videoEl = document.createElement(stream.getVideoTracks().length > 0 ?  "video" : "audio"); | 		const videoEl = document.createElement(stream.getVideoTracks().length > 0 ?  "video" : "audio"); | ||||||
| 		this.videosArea.appendChild(videoEl) | 		this.videosArea.appendChild(videoEl) | ||||||
|  |  | ||||||
| @@ -367,11 +386,16 @@ class CallWindow extends CustomEvents { | |||||||
| 			alert("Stream on main peer!!!") | 			alert("Stream on main peer!!!") | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
|  | 		/* | ||||||
|  |  | ||||||
|  | 		DO NOT DO THIS !!! On configuration change it would close | ||||||
|  | 		the call window... | ||||||
|  |  | ||||||
| 		this.mainPeer.on("close", () => { | 		this.mainPeer.on("close", () => { | ||||||
| 			console.log("Connection to main peer was closed.") | 			console.log("Connection to main peer was closed.") | ||||||
| 			if(this.mainPeer) | 			if(this.mainPeer) | ||||||
| 				this.Close(false); | 				this.Close(false); | ||||||
| 		}); | 		});*/ | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -380,6 +404,18 @@ class CallWindow extends CustomEvents { | |||||||
| 	 * @param {number} peerID Target peer ID | 	 * @param {number} peerID Target peer ID | ||||||
| 	 */ | 	 */ | ||||||
| 	async PeerReady(peerID) { | 	async PeerReady(peerID) { | ||||||
|  |  | ||||||
|  | 		// Mark the peer as ready | ||||||
|  | 		const el = this.getMemberNameEl(peerID) | ||||||
|  | 		if(el) | ||||||
|  | 			el.classList.add("ready") | ||||||
|  |  | ||||||
|  | 		 | ||||||
|  | 		// Remove any previous connection | ||||||
|  | 		if(this.peersEls.has(peerID)) { | ||||||
|  | 			this.peersEls.get(peerID).destroy() | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		const peer = new SimplePeer({ | 		const peer = new SimplePeer({ | ||||||
| 			initiator: false, | 			initiator: false, | ||||||
| 			trickle: true, // Allow exchange of multiple ice candidates | 			trickle: true, // Allow exchange of multiple ice candidates | ||||||
| @@ -404,7 +440,7 @@ class CallWindow extends CustomEvents { | |||||||
|  |  | ||||||
| 		peer.on("stream", stream => { | 		peer.on("stream", stream => { | ||||||
| 			console.log("Got remote peer stream", stream) | 			console.log("Got remote peer stream", stream) | ||||||
| 			 |  | ||||||
| 			this.addVideoStream(peerID, false, stream) | 			this.addVideoStream(peerID, false, stream) | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user