small optimization to online users

v1.18.x
barisusakli 11 years ago
parent 8b4c61241f
commit b8dfbdaff2

@ -13,8 +13,8 @@ usersController.getOnlineUsers = function(req, res, next) {
if(err) { if(err) {
return next(err); return next(err);
} }
var onlineUsers = [],
uid = req.user ? req.user.uid : 0; var uid = req.user ? req.user.uid : 0;
user.isAdministrator(uid, function (err, isAdministrator) { user.isAdministrator(uid, function (err, isAdministrator) {
if(err) { if(err) {
@ -27,39 +27,22 @@ usersController.getOnlineUsers = function(req, res, next) {
}); });
} }
function updateUserOnlineStatus(user, next) {
var online = websockets.isUserOnline(user.uid);
if (!online) {
db.sortedSetRemove('users:online', user.uid);
return next();
}
onlineUsers.push(user);
next();
}
var anonymousUserCount = websockets.getOnlineAnonCount(); var anonymousUserCount = websockets.getOnlineAnonCount();
async.each(users, updateUserOnlineStatus, function(err) { db.sortedSetCard('users:online', function(err, count) {
if (err) { if (err) {
return next(err); return next(err);
} }
db.sortedSetCard('users:online', function(err, count) { var userData = {
if (err) { search_display: 'none',
return next(err); loadmore_display: count > 50 ? 'block' : 'hide',
} users: users,
anonymousUserCount: anonymousUserCount,
var userData = { show_anon: anonymousUserCount?'':'hide'
search_display: 'none', };
loadmore_display: count > 50 ? 'block' : 'hide',
users: onlineUsers,
anonymousUserCount: anonymousUserCount,
show_anon: anonymousUserCount?'':'hide'
};
res.render('users', userData); res.render('users', userData);
});
}); });
}); });
}); });

@ -236,8 +236,10 @@ Sockets.getUserSockets = function(uid) {
return []; return [];
} }
uid = parseInt(uid, 10);
sockets = sockets.filter(function(s) { sockets = sockets.filter(function(s) {
return s.uid === parseInt(uid, 10); return s.uid === uid;
}); });
return sockets; return sockets;

Loading…
Cancel
Save