mirror of https://github.com/status-im/codimd.git
Update to prevent duplicate socket push in queue in order to lower down server loading
This commit is contained in:
parent
d23ced1fba
commit
1cae0c5b7f
|
@ -327,6 +327,15 @@ function emitRefresh(socket) {
|
|||
socket.emit('refresh', out);
|
||||
}
|
||||
|
||||
function isDuplicatedInSocketQueue(queue, socket) {
|
||||
for (var i = 0; i < queue.length; i++) {
|
||||
if (queue[i] && queue[i].id == socket.id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function clearSocketQueue(queue, socket) {
|
||||
for (var i = 0; i < queue.length; i++) {
|
||||
if (!queue[i] || queue[i].id == socket.id) {
|
||||
|
@ -654,6 +663,8 @@ function connection(socket) {
|
|||
if (!noteId) {
|
||||
return failConnection(404, 'note id not found', socket);
|
||||
}
|
||||
|
||||
if (isDuplicatedInSocketQueue(socket, connectionSocketQueue)) return;
|
||||
|
||||
// store noteId in this socket session
|
||||
socket.noteId = noteId;
|
||||
|
@ -830,6 +841,7 @@ function connection(socket) {
|
|||
|
||||
//when a new client disconnect
|
||||
socket.on('disconnect', function () {
|
||||
if (isDuplicatedInSocketQueue(socket, disconnectSocketQueue)) return;
|
||||
disconnectSocketQueue.push(socket);
|
||||
disconnect(socket);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue