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) }); }); }