Improved error handling of web sockets.
This commit is contained in:
parent
8873087c51
commit
c3d7391e02
2 changed files with 10 additions and 13 deletions
|
@ -23,6 +23,9 @@
|
||||||
|
|
||||||
#not_used= require_tree ./lib
|
#not_used= require_tree ./lib
|
||||||
#= require_self
|
#= require_self
|
||||||
|
#= require_tree ./models
|
||||||
|
#= require_tree ./controllers
|
||||||
|
#= require_tree ./views
|
||||||
#= require ./lib/ajax.js.coffee
|
#= require ./lib/ajax.js.coffee
|
||||||
#= require ./lib/clipboard.js.coffee
|
#= require ./lib/clipboard.js.coffee
|
||||||
#= require ./lib/websocket.js.coffee
|
#= require ./lib/websocket.js.coffee
|
||||||
|
@ -31,9 +34,6 @@
|
||||||
#= require ./lib/store.js.coffee
|
#= require ./lib/store.js.coffee
|
||||||
#= require ./lib/collection.js.coffee
|
#= require ./lib/collection.js.coffee
|
||||||
#= require ./lib/event.js.coffee
|
#= require ./lib/event.js.coffee
|
||||||
#= require_tree ./models
|
|
||||||
#= require_tree ./controllers
|
|
||||||
#= require_tree ./views
|
|
||||||
#= require ./lib/interface_handle.js.coffee
|
#= require ./lib/interface_handle.js.coffee
|
||||||
|
|
||||||
class App extends Spine.Controller
|
class App extends Spine.Controller
|
||||||
|
|
|
@ -20,7 +20,7 @@ class App.WebSocket
|
||||||
_instance.auth(args)
|
_instance.auth(args)
|
||||||
|
|
||||||
# The actual Singleton class
|
# The actual Singleton class
|
||||||
class _Singleton extends Spine.Controller
|
class _Singleton extends App.Controller
|
||||||
queue: []
|
queue: []
|
||||||
supported: true
|
supported: true
|
||||||
|
|
||||||
|
@ -64,12 +64,11 @@ class _Singleton extends Spine.Controller
|
||||||
@send( { action: 'ping' } )
|
@send( { action: 'ping' } )
|
||||||
|
|
||||||
# check if ping is back within 2 min
|
# check if ping is back within 2 min
|
||||||
if @check_id
|
@clearDelay('websocket-ping-check')
|
||||||
clearTimeout(@check_id)
|
|
||||||
check = =>
|
check = =>
|
||||||
console.log 'no websockend ping response, reconnect...'
|
console.log 'no websockend ping response, reconnect...'
|
||||||
@close()
|
@close()
|
||||||
@check_id = @delay check, 120000
|
@delay check, 120000, 'websocket-ping-check'
|
||||||
|
|
||||||
pong: ->
|
pong: ->
|
||||||
return if !@supported
|
return if !@supported
|
||||||
|
@ -96,12 +95,10 @@ class _Singleton extends Spine.Controller
|
||||||
|
|
||||||
# Set event handlers.
|
# Set event handlers.
|
||||||
@ws.onopen = =>
|
@ws.onopen = =>
|
||||||
console.log( "onopen" )
|
console.log( 'onopen' )
|
||||||
|
|
||||||
# close error message if exists
|
# close error message show up (because try so connect again) if exists
|
||||||
if @error_delay
|
@clearDelay('websocket-no-connection-try-reconnect')
|
||||||
clearTimeout(@error_delay)
|
|
||||||
@error_delay = undefined
|
|
||||||
if @error
|
if @error
|
||||||
@error.modalHide()
|
@error.modalHide()
|
||||||
@error = undefined
|
@error = undefined
|
||||||
|
@ -156,7 +153,7 @@ class _Singleton extends Spine.Controller
|
||||||
@error = new App.ErrorModal(
|
@error = new App.ErrorModal(
|
||||||
message: 'No connection to websocket, trying to reconnect...'
|
message: 'No connection to websocket, trying to reconnect...'
|
||||||
)
|
)
|
||||||
@error_delay = @delay message, 7000
|
@delay message, 7000, 'websocket-no-connection-try-reconnect'
|
||||||
|
|
||||||
# try reconnect after 4.5 sec.
|
# try reconnect after 4.5 sec.
|
||||||
@delay @connect, 4500
|
@delay @connect, 4500
|
||||||
|
|
Loading…
Reference in a new issue