I am attempting WebRTC using the EasyRTC API. I find the documentation of EasyRTC a bit confusing and fragmented. Basically I wish to perform some actions upon receipt of certain HTTP request(s). I want to create a new 'room' (if it doesn't already exist) and/or check the room occupants if a 'room' does already exist, and limit the number of occupants to only two people.
I am aware of the 'roomJoin' command, however I am having difficulty figuring how to check if a room already exists, creating a new room, and checking number of room occupants.
My code is similar to the following:
// Load required modules
var https = require("https"); // https server core module
var fs = require("fs"); // file system core module
//****
const PORTX = process.env.PORT || 8443;
//****Use Express module
var express = require("express"); // web framework external module
var app = express();
var io = require("socket.io"); // web socket external module
var easyrtc = require("easyrtc"); // EasyRTC external module
//****GLOBAL VARIABLES
var easy_options = {
logLevel: "debug",
appDefaultName: "WebRTC_App",
demosEnable: false,
logDateEnable: true,
appAutoCreateEnable: false,
roomAutoCreateEnable: false,
roomDefaultEnable: false
};
//*****SERVER CODE
//Temporary home page
app.get('/', function (req, res) {
res.render('pages/_splash');
});
//****HTTP REQUESTS/CALLS FROM CLIENT(S)...
app.post('/p2p/calls/:name/token/:passkey', jsonParser, function (req, res) {
//'unknown' commands needed here...
//check if a 'room' exists, if not create it...
//if a room does exist, check number of occupants
//limit room occupants to two people
})
//****
//Start Express https server on port 8443
var webServer = https.createServer(
{
key: fs.readFileSync("/pathtokeys/domain.key"),
cert: fs.readFileSync("/pathtokeys/domain.crt")
}, app).listen(PORTX);
// Start Socket.io so it attaches itself to Express server
var socketServer = io.listen(webServer, {"log level":3});
//****STARTUP EASYRTC SERVER UPON SERVER INITIALIZATION/RESTARTS...
// Start EasyRTC server
easyrtc.listen(app, socketServer, easy_options, function(err, pub) {
if (err) {
return callback(err);
}
console.log("EasyRTC Server is listening");
easyrtc.events.on('connection', function(socket, easyrtcid, next) {
console.log('------>>>>> Connection from easyrtcid', easyrtcid);
});
easyrtc.events.on('disconnect', function(connectionObj, next) {
console.log('------>>>>> Disconnect from ', connectionObj.getEasyrtcid());
});
easyrtc.events.on('roomJoin', function(connectionObj, roomName, roomParameter, callback) {
console.log('------>>>>> ROOM JOIN for ', connectionObj.getEasyrtcid());
console.log('------>>>>> ROOM JOINED is: ', roomName);
});
easyrtc.events.on('roomLeave', function(connectionObj, roomName, next) {
console.log('------>>>>> ROOM LEAVE for ', connectionObj.getEasyrtcid());
console.log('------>>>>> ROOM LEFT is: ', roomName);
});
});
If anybody has previous experience with EasyRTC and has some advice I would greatly appreciate it. I thank you in advance. Regards.