From cefab04a6341ff4bb1ea679ac3be47d7f718d537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 15 May 2018 15:27:39 -0400 Subject: [PATCH] use different event names for each call of getTotalGuestCount --- src/socket.io/admin/rooms.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/socket.io/admin/rooms.js b/src/socket.io/admin/rooms.js index 8f3d36eb0a..936a74199e 100644 --- a/src/socket.io/admin/rooms.js +++ b/src/socket.io/admin/rooms.js @@ -8,6 +8,7 @@ var winston = require('winston'); var topics = require('../../topics'); var pubsub = require('../../pubsub'); +var utils = require('../../utils'); var stats = {}; var totals = {}; @@ -30,25 +31,24 @@ pubsub.on('sync:stats:end', function (data) { stats[data.id] = data.stats; }); -pubsub.on('sync:stats:guests', function () { +pubsub.on('sync:stats:guests', function (eventId) { var io = require('../index').server; - var roomClients = io.sockets.adapter.rooms; var guestCount = roomClients.online_guests ? roomClients.online_guests.length : 0; - pubsub.publish('sync:stats:guests:end', guestCount); + pubsub.publish(eventId, guestCount); }); SocketRooms.getTotalGuestCount = function (callback) { var count = 0; - - pubsub.on('sync:stats:guests:end', function (guestCount) { + var eventId = 'sync:stats:guests:end:' + utils.generateUUID(); + pubsub.on(eventId, function (guestCount) { count += guestCount; }); - pubsub.publish('sync:stats:guests'); + pubsub.publish('sync:stats:guests', eventId); setTimeout(function () { - pubsub.removeAllListeners('sync:stats:guests:end'); + pubsub.removeAllListeners(eventId); callback(null, count); }, 100); };