Skip to content

Instantly share code, notes, and snippets.

@Jason446620
Created February 7, 2025 02:10
Show Gist options
  • Save Jason446620/16d8f662cccd145995947bdff39bf765 to your computer and use it in GitHub Desktop.
Save Jason446620/16d8f662cccd145995947bdff39bf765 to your computer and use it in GitHub Desktop.
peer.on("signal", (data) => {
console.log("๐Ÿ”น Peer generated signal data:", data);
if (isInitiator) {
console.log("๐Ÿ”น [Initiator] Generating OFFER:", JSON.stringify(data));
hubConnection.invoke("SendOffer", streamId, JSON.stringify(data))
.then(() => console.log("โœ… [Initiator] Offer sent successfully."))
.catch((err) => console.error("โŒ [Initiator] Error sending Offer:", err));
} else {
console.log("๐Ÿ”น [Receiver] Generating ANSWER:", JSON.stringify(data));
hubConnection.invoke("SendAnswer", streamId, JSON.stringify(data))
.then(() => console.log("โœ… [Receiver] Answer sent successfully."))
.catch((err) => console.error("โŒ [Receiver] Error sending Answer:", err));
}
});
hubConnection.on("ReceiveOffer", async (offer) => {
console.log("๐Ÿ”น [Receiver] Received OFFER:", offer);
if (!peer) {
console.log("๐Ÿ”น [Receiver] Initializing peer connection...");
await startStreaming(); // Wait for peer initialization
}
if (peer) {
console.log("๐Ÿ”น [Receiver] Applying OFFER...");
peer.signal(JSON.parse(offer));
} else {
console.error("โŒ [Receiver] Peer object is NULL while processing offer.");
}
});
async function startStreaming() {
console.log("๐Ÿ”น Requesting user media...");
try {
const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: true });
console.log("โœ… Local video stream received:", stream);
document.getElementById("localVideo").srcObject = stream;
if (peer) peer.destroy();
peer = new SimplePeer({
initiator: isInitiator,
trickle: false,
stream: stream // Attach local stream
});
// Handle remote stream
peer.on("stream", (remoteStream) => {
console.log("โœ… Remote stream received:", remoteStream);
document.getElementById("remoteVideo").srcObject = remoteStream;
});
// [Rest of your peer event handlers...]
} catch (error) {
console.error("โŒ Error accessing media devices:", error);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment