Merge branch 'master' of github.com:designcreateplay/NodeBB

v1.18.x
Julian Lam 12 years ago
commit 5e5680fd13

@ -51,13 +51,13 @@ function upgradeUser(uid, callback) {
}, },
function(next) { function(next) {
if(userData.postcount) if(userData.postcount)
RDB.zadd('users:postcount', userData.postcount, uid); RDB.zadd('users:postcount', userData.postcount, uid, next);
else else
next(null); next(null);
}, },
function(next) { function(next) {
if(userData.reputation) if(userData.reputation)
RDB.zadd('users:reputation', userData.reputation, uid); RDB.zadd('users:reputation', userData.reputation, uid, next);
else else
next(null); next(null);
} }
@ -121,7 +121,7 @@ exports.upgrade = function() {
async.each(uids, upgradeUser, function(err) { async.each(uids, upgradeUser, function(err) {
if(!err) { if(!err) {
winston.info('upgraded users') winston.info('upgraded users');
next(null, null); next(null, null);
} else { } else {
next(err, null); next(err, null);

@ -34,7 +34,7 @@ var SocketIO = require('socket.io').listen(global.server, {
winston = require('winston'); winston = require('winston');
(function(io) { (function(io) {
var users = {}, var users = {},
userSockets = {}, userSockets = {},
rooms = {}; rooms = {};
@ -76,12 +76,14 @@ var SocketIO = require('socket.io').listen(global.server, {
if(userSockets[uid].length === 0) { if(userSockets[uid].length === 0) {
delete users[sessionID]; delete users[sessionID];
emitOnlineUserCount(); delete userSockets[uid];
if(uid) { if(uid) {
io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid)); io.sockets.in('global').emit('api:user.isOnline', isUserOnline(uid));
} }
} }
emitOnlineUserCount();
for(var roomName in rooms) { for(var roomName in rooms) {
socket.leave(roomName); socket.leave(roomName);
@ -412,10 +414,13 @@ var SocketIO = require('socket.io').listen(global.server, {
}); });
function emitOnlineUserCount() { function emitOnlineUserCount() {
var online = Object.keys(users); var anon = userSockets[0] ? userSockets[0].length : 0;
var registered = Object.keys(userSockets).length;
if(anon)
registered = registered - 1;
var returnObj = { var returnObj = {
users: online.length users: registered + anon
}; };
io.sockets.emit('api:user.active.get', returnObj) io.sockets.emit('api:user.active.get', returnObj)
} }

Loading…
Cancel
Save