From dfe2f2b90d09f366d19108bc41508be0e319d45b Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Tue, 4 Sep 2012 18:37:41 +0200 Subject: [PATCH] Improved reconnect. --- .../javascripts/app/lib/websocket.js.coffee | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/app/lib/websocket.js.coffee b/app/assets/javascripts/app/lib/websocket.js.coffee index c1b6b86d1..b4fee99b6 100644 --- a/app/assets/javascripts/app/lib/websocket.js.coffee +++ b/app/assets/javascripts/app/lib/websocket.js.coffee @@ -90,6 +90,9 @@ class _Singleton extends Spine.Controller console.log( "onopen" ) # close error message if exists + if @error_delay + clearTimeout(@error_delay) + @error_delay = undefined if @error @error.modalHide() @error = undefined @@ -107,7 +110,7 @@ class _Singleton extends Spine.Controller @ws.onmessage = (e) => pipe = JSON.parse( e.data ) - console.log( "ws:onmessage", pipe ) + console.log( 'ws:onmessage', pipe ) # go through all blocks for item in pipe @@ -136,17 +139,19 @@ class _Singleton extends Spine.Controller @send(data) @ws.onclose = (e) => - console.log( "onclose", e ) + console.log( 'onclose', e ) - # show error message + # show error message, first try to reconnect if !@error - @error = new App.ErrorModal( - message: 'No connection to websocket, trying to reconnect...' - ) + message = => + @error = new App.ErrorModal( + message: 'No connection to websocket, trying to reconnect...' + ) + @error_delay = @delay message, 7000 - # try reconnect after 5 sec. - @delay @connect, 5000 + # try reconnect after 4.5 sec. + @delay @connect, 4500 @ws.onerror = -> - console.log( "onerror" ) + console.log( 'onerror' )