aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJavan Makhmali <javan@javan.us>2015-06-27 13:13:44 -0400
committerJavan Makhmali <javan@javan.us>2015-06-27 16:17:06 -0400
commitd2c613cd8f422b9cf2dd8a765681066d6045036a (patch)
tree7d77b5abd9fe3645e423851322b1b4bebc04da53
parent16849a7e68ed7bd50e47bb429a30d6dcedf1979b (diff)
downloadrails-d2c613cd8f422b9cf2dd8a765681066d6045036a.tar.gz
rails-d2c613cd8f422b9cf2dd8a765681066d6045036a.tar.bz2
rails-d2c613cd8f422b9cf2dd8a765681066d6045036a.zip
Wait for connection to close before reopening it
-rw-r--r--lib/assets/javascripts/cable/connection.js.coffee11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/assets/javascripts/cable/connection.js.coffee b/lib/assets/javascripts/cable/connection.js.coffee
index cd9539a6aa..98af9ad8ab 100644
--- a/lib/assets/javascripts/cable/connection.js.coffee
+++ b/lib/assets/javascripts/cable/connection.js.coffee
@@ -12,20 +12,23 @@ class Cable.Connection
else
false
- open: ->
+ open: =>
@websocket = new WebSocket(@consumer.url)
@websocket.onmessage = @onMessage
@websocket.onopen = @onOpen
@websocket.onclose = @onClose
@websocket.onerror = @onError
- @websocket
close: ->
@websocket.close() unless @isClosed()
reopen: ->
- @close()
- @open()
+ if @isClosed()
+ @open()
+ else
+ @websocket.onclose = @open
+ @websocket.onerror = @open
+ @websocket.close()
isOpen: ->
@websocket.readyState is WebSocket.OPEN