diff --git a/web/app/assets/javascripts/JamServer.js b/web/app/assets/javascripts/JamServer.js index 846a8d20e..e3f7f00dc 100644 --- a/web/app/assets/javascripts/JamServer.js +++ b/web/app/assets/javascripts/JamServer.js @@ -542,6 +542,7 @@ server.connecting = true; server.socket = new context.WebSocket(uri); + server.socket.channelId = channelId; server.socket.onopen = server.onOpen; server.socket.onmessage = server.onMessage; server.socket.onclose = server.onClose; @@ -620,6 +621,13 @@ server.onClose = function () { logger.info("Socket to server closed."); + var disconnectedSocket = this; + + if(disconnectedSocket.channelId != server.socket.channelId) { + logger.debug(" ignoring disconnect for non-current socket. current=" + server.socket.channelId + ", disc=" + disconnectedSocket.channelId) + return; + } + if (connectDeferred.state() === "pending") { connectDeferred.reject(); }