omelop
Version:
[](https://travis-ci.org/node-omelop/omelop)
95 lines • 4.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConnectionService = void 0;
/**
* connection statistics service
* record connection, login count and list
*/
class ConnectionService {
constructor(app) {
this.connCount = 0;
this.loginedCount = 0;
this.logined = {};
this.serverId = app.getServerId();
}
/**
* Add logined user.
*
* @param uid {String} user id
* @param info {Object} record for logined user
*/
addLoginedUser(uid, info) {
if (!this.logined[uid]) {
this.loginedCount++;
}
info.uid = uid;
this.logined[uid] = info;
}
/**
* Update user info.
* @param uid {String} user id
* @param info {Object} info for update.
*/
updateUserInfo(uid, info) {
let user = this.logined[uid];
if (!user) {
return;
}
for (let p in info) {
if (info.hasOwnProperty(p) && typeof info[p] !== 'function') {
user[p] = info[p];
}
}
}
/**
* Increase connection count
*/
increaseConnectionCount() {
this.connCount++;
}
/**
* Remote logined user
*
* @param uid {String} user id
*/
removeLoginedUser(uid) {
if (!!this.logined[uid]) {
this.loginedCount--;
}
this.logined[uid] = undefined;
}
/**
* Decrease connection count
*
* @param uid {String} uid
*/
decreaseConnectionCount(uid) {
if (this.connCount) {
this.connCount--;
}
if (!!uid) {
this.removeLoginedUser(uid);
}
}
/**
* Get statistics info
*
* @return {Object} statistics info
*/
getStatisticsInfo() {
let list = [];
for (let uid in this.logined) {
if (this.logined[uid]) {
list.push(this.logined[uid]);
}
}
return {
serverId: this.serverId,
totalConnCount: this.connCount,
loginedCount: this.loginedCount,
loginedList: list
};
}
}
exports.ConnectionService = ConnectionService;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvblNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvY29tbW9uL3NlcnZpY2UvY29ubmVjdGlvblNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBU0E7OztHQUdHO0FBRUgsTUFBYSxpQkFBaUI7SUFPMUIsWUFBWSxHQUFnQjtRQUw1QixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsWUFBTyxHQUF1QyxFQUFFLENBQUM7UUFJN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLEdBQVEsRUFBRSxJQUFxQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkI7UUFDRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLEdBQVEsRUFBRSxJQUFxQjtRQUMxQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPO1NBQ1Y7UUFFRCxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNoQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBUSxJQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxFQUFFO2dCQUNqRSxJQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUksSUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsR0FBUTtRQUN0QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCLENBQUMsR0FBUTtRQUM1QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUI7UUFDYixJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNoQztTQUNKO1FBRUQsT0FBTztZQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDOUIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLFdBQVcsRUFBRSxJQUFJO1NBQ3BCLENBQUM7SUFDTixDQUFDO0NBQ0o7QUFqR0QsOENBaUdDIn0=