90 lines
2.5 KiB
JavaScript
90 lines
2.5 KiB
JavaScript
var OV;
|
|
var session;
|
|
|
|
function joinSession() {
|
|
|
|
var mySessionId = document.getElementById("sessionId").value;
|
|
|
|
OV = new OpenVidu();
|
|
session = OV.initSession();
|
|
|
|
session.on("streamCreated", function (event) {
|
|
session.subscribe(event.stream, "subscriber");
|
|
});
|
|
|
|
getToken(mySessionId).then(token => {
|
|
|
|
session.connect(token)
|
|
.then(() => {
|
|
document.getElementById("session-header").innerText = mySessionId;
|
|
document.getElementById("join").style.display = "none";
|
|
document.getElementById("session").style.display = "block";
|
|
|
|
var publisher = OV.initPublisher("publisher");
|
|
session.publish(publisher);
|
|
})
|
|
.catch(error => {
|
|
console.log("There was an error connecting to the session:", error.code, error.message);
|
|
});
|
|
});
|
|
|
|
}
|
|
|
|
function leaveSession() {
|
|
session.disconnect();
|
|
document.getElementById("join").style.display = "block";
|
|
document.getElementById("session").style.display = "none";
|
|
}
|
|
|
|
window.onbeforeunload = function () {
|
|
if (session) session.disconnect();
|
|
};
|
|
|
|
|
|
/**
|
|
* --------------------------------------------
|
|
* GETTING A TOKEN FROM YOUR APPLICATION SERVER
|
|
* --------------------------------------------
|
|
* The methods below request the creation of a Session and a Token to
|
|
* your application server. This keeps your OpenVidu deployment secure.
|
|
*
|
|
* In this sample code, there is no user control at all. Anybody could
|
|
* access your application server endpoints! In a real production
|
|
* environment, your application server must identify the user to allow
|
|
* access to the endpoints.
|
|
*
|
|
* Visit https://docs.openvidu.io/en/stable/application-server to learn
|
|
* more about the integration of OpenVidu in your application server.
|
|
*/
|
|
|
|
var APPLICATION_SERVER_URL = "http://localhost:5000/";
|
|
|
|
function getToken(mySessionId) {
|
|
return createSession(mySessionId).then(sessionId => createToken(sessionId));
|
|
}
|
|
|
|
function createSession(sessionId) {
|
|
return new Promise((resolve, reject) => {
|
|
$.ajax({
|
|
type: "POST",
|
|
url: APPLICATION_SERVER_URL + "api/sessions",
|
|
data: JSON.stringify({ customSessionId: sessionId }),
|
|
headers: { "Content-Type": "application/json" },
|
|
success: response => resolve(response), // The sessionId
|
|
error: (error) => reject(error)
|
|
});
|
|
});
|
|
}
|
|
|
|
function createToken(sessionId) {
|
|
return new Promise((resolve, reject) => {
|
|
$.ajax({
|
|
type: 'POST',
|
|
url: APPLICATION_SERVER_URL + 'api/sessions/' + sessionId + '/connections',
|
|
data: JSON.stringify({}),
|
|
headers: { "Content-Type": "application/json" },
|
|
success: (response) => resolve(response), // The token
|
|
error: (error) => reject(error)
|
|
});
|
|
});
|
|
} |