Skip to content

Commit 53f26a7

Browse files
committed
Fixed cleaner might not clean user not in connected list and handle if the user socket not exist
1 parent 9586e20 commit 53f26a7

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

lib/realtime.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,19 @@ var updater = setInterval(function () {
103103
if (err) return logger.error('updater error', err);
104104
});
105105
}, 1000);
106-
//clean when user not in any rooms
106+
//clean when user not in any rooms or user not in connected list
107107
var cleaner = setInterval(function () {
108108
async.each(Object.keys(users), function (key, callback) {
109109
var socket = realtime.io.sockets.connected[key];
110-
if (socket && (!socket.rooms || socket.rooms.length <= 0)) {
110+
if ((!socket && users[key]) ||
111+
(socket && (!socket.rooms || socket.rooms.length <= 0))) {
111112
if (config.debug)
112113
logger.info("cleaner found redundant user: " + key);
114+
if (!socket) {
115+
socket = {
116+
id: key
117+
};
118+
}
113119
disconnectSocketQueue.push(socket);
114120
disconnect(socket);
115121
}

0 commit comments

Comments
 (0)