kurento-group-call
Version:
Simple javascript library used to initiate a group call (many to many video and audio call) using Kurento Media Server
47 lines (37 loc) • 1.12 kB
JavaScript
;
var logger = require('./logger');
/*
* Map of users registered in the system.
*/
function UserRegistry() {
this.usersByName = {};
this.usersBySessionId = {};
}
UserRegistry.prototype.getUserIds = function () {
var ids = [];
for (var id in this.usersByName) {
ids.push( id );
}
return ids;
};
UserRegistry.prototype.register = function (userSession) {
var userName = userSession.getUserName();
logger.info('register user ' + userName);
this.usersByName[userName] = userSession;
this.usersBySessionId[userSession.getSessionId()] = userSession;
};
UserRegistry.prototype.getByName = function (userName) {
return this.usersByName[userName];
};
UserRegistry.prototype.getBySessionId = function (sessionId) {
return this.usersBySessionId[sessionId];
};
UserRegistry.prototype.removeBySession = function (sessionId) {
var user = this.getBySessionId(sessionId);
if (user) {
delete this.usersByName[user.getUserName()];
delete this.usersBySessionId[sessionId];
return user;
}
};
module.exports = UserRegistry;