From 2c31b8d809a692db0ad784117340c0aa2d6b69a2 Mon Sep 17 00:00:00 2001 From: Wu Cheng-Han Date: Sun, 27 Sep 2015 11:43:55 +0800 Subject: [PATCH] Fixed realtime cleaner, socket should defined and notename is not a necessary in disconnect --- lib/realtime.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/realtime.js b/lib/realtime.js index 3e99a12..d2c9fe6 100644 --- a/lib/realtime.js +++ b/lib/realtime.js @@ -107,7 +107,7 @@ var updater = setInterval(function () { var cleaner = setInterval(function () { async.each(Object.keys(users), function (key, callback) { var socket = realtime.io.sockets.connected[key]; - if (!socket || !socket.rooms || socket.rooms.length <= 0) { + if (socket && (!socket.rooms || socket.rooms.length <= 0)) { if (config.debug) logger.info("cleaner found redundant user: " + key); disconnectSocketQueue.push(socket); @@ -353,14 +353,11 @@ function disconnect(socket) { logger.info("SERVER disconnected a client"); logger.info(JSON.stringify(users[socket.id])); } - var notename = getNotenameFromSocket(socket); - if (!notename) { - isDisconnectBusy = false; - return; - } + if (users[socket.id]) { delete users[socket.id]; } + var notename = getNotenameFromSocket(socket); var note = notes[notename]; if (note) { delete note.users[socket.id];