123456789101112131415161718192021222324252627282930313233343536373839 |
- var statusService = require('../service/statusService');
- var logger = require('pomelo-logger').getLogger(__filename);
- var Event = function(app) {
- this.app = app;
- this.statusService = app.get('statusService');
- };
- module.exports = Event;
- Event.prototype.bind_session = function(session) {
- if(!session.uid) {
- return;
- }
- this.statusService.add(session.uid, session.frontendId, function(err) {
- if(!!err) {
- logger.error('statusService add user failed: [%s] [%s], err: %j', session.uid, session.frontendId, err);
- return;
- }
- });
- };
- Event.prototype.close_session = function(session) {
- if(!session.uid) {
- return;
- }
- // don't remove entry if another session for the same user on the same frontend remain
- var currentUserSessions = this.app.get('sessionService').getByUid(session.uid);
- if (currentUserSessions !== undefined) {
- logger.debug('at least another session exists for this user on this frontend: [%s] [%s]', session.uid, session.frontendId);
- return;
- }
- this.statusService.leave(session.uid, session.frontendId, function(err) {
- if(!!err) {
- logger.error('failed to kick user in statusService: [%s] [%s], err: %j', session.uid, session.frontendId, err);
- return;
- }
- });
- };
|