How to Add Multiple App and Config Support in No-Iframe Implementation
GitHub Link: https://github.com/e3ds/full-html-control/tree/html/ejs-multiApp
First, use the following command to clone the repository branch:
git clone -b html/multiApp --single-branch https://github.com/e3ds/full-html-control
Â
To dynamically set the app name and config, we need to modify the tokenServer.js
app.get("/:appName/:configurationName",
function (req, res)
{
const appName = req.params.appName; //dynamically receiving app name from url
const configurationName = req.params.configurationName; //dynamically receiving config name from url
GenerateStreamingSessionToken(res,false, appName, configurationName)
}
);
Here, we are dynamically receiving appName
and configurationName
from the URL params. Then we pass the appName
and configurationName
as parameters to the GenerateStreamingSessionToken
function.
Â
Inside the GenerateStreamingSessionToken
function, we update streamingAppInfo
variable’s appName
and configurationName
properties.
function GenerateStreamingSessionToken(res,indexCP_dist=false, appName, configurationName)
{
streamingAppInfo.core.appName = appName;
streamingAppInfo.core.configurationName = configurationName;
const axios = require("axios");
axios.post(
"https://token.eaglepixelstreaming.com/api/v1/token/create",
{
"object" : streamingAppInfo,
"expiry": tokenExpiryDuration,
"client" : clientUserName
},
{
headers: {"Authorization": "Auth "+apiKey }
}
)
.then((response) =>
{
//console.dir(response);
console.log("response.token :" +response.data.token);
if(response.data.error)
console.log("response.error :" +response.data.error);
var obj={
token: response.data.token,
clientUserName: clientUserName,
}
console.log("obj passing to ejs view :" + JSON.stringify(obj) );
res.render("player", obj);
})
.catch(err =>
{
console.error(err);
console.log(err);
});
}