Added cleaner in realtime.js, to clean up users which aren't in any rooms in a interval
This commit is contained in:
		
							parent
							
								
									950d978fe8
								
							
						
					
					
						commit
						43a175e710
					
				@ -80,6 +80,7 @@ function emitCheck(note) {
 | 
				
			|||||||
//actions
 | 
					//actions
 | 
				
			||||||
var users = {};
 | 
					var users = {};
 | 
				
			||||||
var notes = {};
 | 
					var notes = {};
 | 
				
			||||||
 | 
					//update when the note is dirty
 | 
				
			||||||
var updater = setInterval(function () {
 | 
					var updater = setInterval(function () {
 | 
				
			||||||
    async.each(Object.keys(notes), function (key, callback) {
 | 
					    async.each(Object.keys(notes), function (key, callback) {
 | 
				
			||||||
        var note = notes[key];
 | 
					        var note = notes[key];
 | 
				
			||||||
@ -102,6 +103,21 @@ var updater = setInterval(function () {
 | 
				
			|||||||
        if (err) return logger.error('updater error', err);
 | 
					        if (err) return logger.error('updater error', err);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}, 1000);
 | 
					}, 1000);
 | 
				
			||||||
 | 
					//clean when user not in any rooms
 | 
				
			||||||
 | 
					var cleaner = setInterval(function () {
 | 
				
			||||||
 | 
					    async.each(Object.keys(users), function (key, callback) {
 | 
				
			||||||
 | 
					        var socket = realtime.io.sockets.connected[key];
 | 
				
			||||||
 | 
					        if (!socket || !socket.rooms || socket.rooms.length <= 0) {
 | 
				
			||||||
 | 
					            if (config.debug)
 | 
				
			||||||
 | 
					                logger.info("cleaner found redundant user: " + key);
 | 
				
			||||||
 | 
					            disconnectSocketQueue.push(socket);
 | 
				
			||||||
 | 
					            disconnect(socket);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        callback();
 | 
				
			||||||
 | 
					    }, function (err) {
 | 
				
			||||||
 | 
					        if (err) return logger.error('cleaner error', err);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}, 60000);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getStatus(callback) {
 | 
					function getStatus(callback) {
 | 
				
			||||||
    db.countFromDB(function (err, data) {
 | 
					    db.countFromDB(function (err, data) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user