From a6074da17ef93454066f852e54e60183361f043b Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 7 Jan 2016 18:07:43 +0200 Subject: [PATCH] closes #4032 --- package.json | 8 ++++---- src/logger.js | 36 +++++++++++++++++++++--------------- src/socket.io/index.js | 2 +- 3 files changed, 26 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 3ecf2de307..6860a4209b 100644 --- a/package.json +++ b/package.json @@ -69,10 +69,10 @@ "semver": "^5.0.1", "serve-favicon": "^2.1.5", "sitemap": "^1.4.0", - "socket.io": "^1.2.1", - "socket.io-client": "^1.2.1", - "socket.io-redis": "^0.2.0", - "socketio-wildcard": "~0.2.0", + "socket.io": "^1.4.0", + "socket.io-client": "^1.4.0", + "socket.io-redis": "^1.0.0", + "socketio-wildcard": "~0.3.0", "string": "^3.0.0", "templates.js": "0.3.1", "toobusy-js": "^0.4.2", diff --git a/src/logger.js b/src/logger.js index 5b15e90ad6..e646046bd9 100644 --- a/src/logger.js +++ b/src/logger.js @@ -6,10 +6,9 @@ var fs = require('fs'), path = require('path'), - express = require('express'), winston = require('winston'), util = require('util'), - socketio = require('socket.io'), + file = require('./file'), meta = require('./meta'), morgan = require('morgan'); @@ -160,16 +159,22 @@ var opts = { /* * Restore all hijacked sockets to their original emit/on functions */ - var clients = []; //socket.io.sockets.clients(); doesn't work in socket.io 1.x - clients.forEach(function(client) { - if(client.oEmit && client.oEmit !== client.emit) { - client.emit = client.oEmit; - } + if (!socket || !socket.io || !socket.io.sockets || !socket.io.sockets.sockets) { + return; + } + var clients = socket.io.sockets.sockets; + for (var sid in clients) { + if (clients.hasOwnProperty(sid)) { + var client = clients[sid]; + if(client.oEmit && client.oEmit !== client.emit) { + client.emit = client.oEmit; + } - if(client.$oEmit && client.$oEmit !== client.$emit) { - client.$emit = client.$oEmit; + if(client.$oEmit && client.$oEmit !== client.$emit) { + client.$emit = client.$oEmit; + } } - }); + } }; Logger.io = function(socket) { @@ -177,15 +182,16 @@ var opts = { * Go through all of the currently established sockets & hook their .emit/.on */ - if (!socket || !socket.io || !socket.io.sockets || !Array.isArray(socket.io.sockets.sockets)) { + if (!socket || !socket.io || !socket.io.sockets || !socket.io.sockets.sockets) { return; } var clients = socket.io.sockets.sockets; - - clients.forEach(function(client) { - Logger.io_one(client, client.uid); - }); + for(var sid in clients) { + if (clients.hasOwnProperty(sid)) { + Logger.io_one(clients[sid], clients[sid].uid); + } + } }; Logger.io_one = function(socket, uid) { diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 7d3dfac0bd..c5b7a94d07 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -199,7 +199,7 @@ Sockets.getSocketCount = function() { if (!io) { return 0; } - return io.sockets.sockets.length; + return Object.keys(io.sockets.sockets).length; }; Sockets.getUserSocketCount = function(uid) {