Fix realtime on finishConnection might not clear and connect next socket in queue and should use shift instead of pop on remove invalid socket in queue
This commit is contained in:
parent
f7a4f8f8c2
commit
40478f4eff
1 changed files with 14 additions and 6 deletions
|
@ -323,17 +323,27 @@ function clearSocketQueue(queue, socket) {
|
|||
}
|
||||
}
|
||||
|
||||
function connectNextSocket() {
|
||||
isConnectionBusy = false;
|
||||
if (connectionSocketQueue.length > 0)
|
||||
startConnection(connectionSocketQueue[0]);
|
||||
}
|
||||
|
||||
var isConnectionBusy = false;
|
||||
var connectionSocketQueue = [];
|
||||
var isDisconnectBusy = false;
|
||||
var disconnectSocketQueue = [];
|
||||
|
||||
function finishConnection(socket, note, user) {
|
||||
// if no valid info provided will drop the client
|
||||
if (!socket || !note || !user) {
|
||||
if (note) delete note;
|
||||
if (user) delete user;
|
||||
connectionSocketQueue.pop();
|
||||
isConnectionBusy = false;
|
||||
if (socket)
|
||||
clearSocketQueue(connectionSocketQueue, socket);
|
||||
else
|
||||
connectionSocketQueue.shift();
|
||||
connectNextSocket();
|
||||
return;
|
||||
}
|
||||
//check view permission
|
||||
|
@ -356,9 +366,7 @@ function finishConnection(socket, note, user) {
|
|||
//clear finished socket in queue
|
||||
clearSocketQueue(connectionSocketQueue, socket);
|
||||
//seek for next socket
|
||||
isConnectionBusy = false;
|
||||
if (connectionSocketQueue.length > 0)
|
||||
startConnection(connectionSocketQueue[0]);
|
||||
connectNextSocket();
|
||||
|
||||
if (config.debug) {
|
||||
var noteId = socket.noteId;
|
||||
|
@ -436,7 +444,7 @@ function failConnection(code, err, socket) {
|
|||
logger.error(err);
|
||||
// clear error socket in queue
|
||||
clearSocketQueue(connectionSocketQueue, socket);
|
||||
isConnectionBusy = false;
|
||||
connectNextSocket();
|
||||
// emit error info
|
||||
socket.emit('info', {
|
||||
code: code
|
||||
|
|
Loading…
Reference in a new issue