user activity counter (bug present where all users register as same session? this isn't good....)

This commit is contained in:
Julian Lam
2013-04-25 16:27:22 -04:00
parent a085b7eb0a
commit 2a9c33b9f8
6 changed files with 62 additions and 4 deletions

View File

@@ -225,4 +225,43 @@ var config = require('../config.js'),
});
}
}
User.active = {
get: function(callback) {
RDB.keys('active:*', function(active) {
var returnObj = {
users: 0,
anon: 0,
uids: []
},
keys = [];
for(var a in active) {
keys.push('sess:' + active[a].split(':')[1] + ':uid');
}
RDB.mget(keys, function(uids) {
for(var u in uids) {
if (uids[u] !== null) {
if (returnObj.uids.indexOf(uids[u]) === -1) {
returnObj.users++;
returnObj.uids.push(uids[u]);
}
} else {
returnObj.anon++;
}
}
if (callback === undefined) {
global.socket.emit('api:user.active.get', returnObj)
} else {
callback(returnObj);
}
});
});
},
register: function(sessionID) {
RDB.set('active:' + sessionID, 60*10); // Active state persists for 10 minutes
}
}
}(exports));