summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/realtime.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/realtime.js b/lib/realtime.js
index b5a3b182..1e1f0107 100644
--- a/lib/realtime.js
+++ b/lib/realtime.js
@@ -80,6 +80,7 @@ function emitCheck(note) {
//actions
var users = {};
var notes = {};
+//update when the note is dirty
var updater = setInterval(function () {
async.each(Object.keys(notes), function (key, callback) {
var note = notes[key];
@@ -102,6 +103,21 @@ var updater = setInterval(function () {
if (err) return logger.error('updater error', err);
});
}, 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) {
db.countFromDB(function (err, data) {