diff --git a/src/package.json b/src/package.json index bdbf35c2..f8d3cf86 100644 --- a/src/package.json +++ b/src/package.json @@ -16,7 +16,7 @@ "request" : "2.55.0", "etherpad-require-kernel" : "1.0.9", "resolve" : "1.1.7", - "socket.io" : "1.4.5", + "socket.io" : "1.6.0", "ueberdb2" : "0.3.0", "express" : "4.13.4", "express-session" : "1.13.0", diff --git a/src/static/js/pad.js b/src/static/js/pad.js index f8ff8578..a9eaf7d2 100644 --- a/src/static/js/pad.js +++ b/src/static/js/pad.js @@ -231,40 +231,27 @@ function handshake() // Allow deployers to host Etherpad on a non-root path 'path': exports.baseURL + "socket.io", 'resource': resource, - 'max reconnection attempts': 3, - 'sync disconnect on unload' : false + 'reconnectionAttempts': 5, + 'reconnection' : true, + 'reconnectionDelay' : 1000, + 'reconnectionDelayMax' : 5000 }); - var disconnectTimeout; - socket.once('connect', function () { sendClientReady(false); }); socket.on('reconnect', function () { - //reconnect is before the timeout, lets stop the timeout - if(disconnectTimeout) - { - clearTimeout(disconnectTimeout); - } - pad.collabClient.setChannelState("CONNECTED"); pad.sendClientReady(true); }); - socket.on('disconnect', function (reason) { - if(reason == "booted"){ - pad.collabClient.setChannelState("DISCONNECTED"); - } else { - function disconnectEvent() - { - pad.collabClient.setChannelState("DISCONNECTED", "reconnect_timeout"); - } - - pad.collabClient.setChannelState("RECONNECTING"); - - disconnectTimeout = setTimeout(disconnectEvent, 20000); - } + socket.on('reconnecting', function() { + pad.collabClient.setChannelState("RECONNECTING"); + }); + + socket.on('reconnect_failed', function(error) { + pad.collabClient.setChannelState("DISCONNECTED", "reconnect_timeout"); }); var initalized = false;