Join as Publisher
JavaScript example (based on browser API):
// create WebRTC peer connection
let pc = new RTCPeerConnection();
// create a data channel labeled as "control"
let dc = pc.createDataChannel("control");
// setup callback
pc.onicecandidate = function(event) {
if (event.candidate) {
// ...
} else {
let offer = pc.localDescription;
let type = "pub";
let room = "testroom"; // modify this
let id = "testuser"; // modify this
let token = "mysecret"; // modify this
let url = `/${type}/${room}/${id}`; // modify this
// send to Weever Streaming
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/sdp",
"Authorization": `Bearer ${token}`,
},
body: offer.sdp,
}).then(res => {
res.text().then(function(answer) {
pc.setRemoteDescription(new RTCSessionDescription({"type": "answer", "sdp": answer}));
})
});
}
}
// grab media (audio/video)
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(stream => {
stream.getTracks().forEach(track => pc.addTrack(track, stream));
pc.createOffer()
.then(offer => {
// set local SDP offer
// this will trigger ICE gathering, and then onicecandidate callback
pc.setLocalDescription(offer);
});
});