From b8dfbdaff26ef1216271429955fccb0e45d8862a Mon Sep 17 00:00:00 2001 From: barisusakli Date: Mon, 1 Sep 2014 23:33:32 -0400 Subject: [PATCH] small optimization to online users --- src/controllers/users.js | 39 +++++++++++---------------------------- src/socket.io/index.js | 4 +++- 2 files changed, 14 insertions(+), 29 deletions(-) diff --git a/src/controllers/users.js b/src/controllers/users.js index d40f5acd7f..fa53a3fa1a 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -13,8 +13,8 @@ usersController.getOnlineUsers = function(req, res, next) { if(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) { 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(); - async.each(users, updateUserOnlineStatus, function(err) { + db.sortedSetCard('users:online', function(err, count) { if (err) { return next(err); } - db.sortedSetCard('users:online', function(err, count) { - if (err) { - return next(err); - } - - var userData = { - search_display: 'none', - loadmore_display: count > 50 ? 'block' : 'hide', - users: onlineUsers, - anonymousUserCount: anonymousUserCount, - show_anon: anonymousUserCount?'':'hide' - }; + var userData = { + search_display: 'none', + loadmore_display: count > 50 ? 'block' : 'hide', + users: users, + anonymousUserCount: anonymousUserCount, + show_anon: anonymousUserCount?'':'hide' + }; - res.render('users', userData); - }); + res.render('users', userData); }); }); }); diff --git a/src/socket.io/index.js b/src/socket.io/index.js index c1f2fb1b3d..149f372286 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -236,8 +236,10 @@ Sockets.getUserSockets = function(uid) { return []; } + uid = parseInt(uid, 10); + sockets = sockets.filter(function(s) { - return s.uid === parseInt(uid, 10); + return s.uid === uid; }); return sockets;