aboutsummaryrefslogtreecommitdiffstats
path: root/lib/assets/javascripts/cable
diff options
context:
space:
mode:
authorJavan Makhmali <javan@javan.us>2015-07-23 17:20:04 -0400
committerJavan Makhmali <javan@javan.us>2015-07-23 17:20:04 -0400
commitdc4f8b352cb6b14aff8690f410e4a5bcb2a8280e (patch)
tree3d47dbd38d943ddd549935a021352e2c50272484 /lib/assets/javascripts/cable
parent3fb1a84f538d47a3c691b245a8dd0f5b4f8184e4 (diff)
downloadrails-dc4f8b352cb6b14aff8690f410e4a5bcb2a8280e.tar.gz
rails-dc4f8b352cb6b14aff8690f410e4a5bcb2a8280e.tar.bz2
rails-dc4f8b352cb6b14aff8690f410e4a5bcb2a8280e.zip
Don't unsubscribe on the server when another subscription with the same identifier is active
Diffstat (limited to 'lib/assets/javascripts/cable')
-rw-r--r--lib/assets/javascripts/cable/subscriptions.js.coffee8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/assets/javascripts/cable/subscriptions.js.coffee b/lib/assets/javascripts/cable/subscriptions.js.coffee
index 3bc53f2d6a..fe6975c870 100644
--- a/lib/assets/javascripts/cable/subscriptions.js.coffee
+++ b/lib/assets/javascripts/cable/subscriptions.js.coffee
@@ -29,8 +29,12 @@ class Cable.Subscriptions
@notify(subscription, "connected")
remove: (subscription) ->
- @sendCommand(subscription, "unsubscribe")
@subscriptions = (s for s in @subscriptions when s isnt subscription)
+ unless @findAll(subscription.identifier).length
+ @sendCommand(subscription, "unsubscribe")
+
+ findAll: (identifier) ->
+ s for s in @subscriptions when s.identifier is identifier
notifyAll: (callbackName, args...) ->
for subscription in @subscriptions
@@ -38,7 +42,7 @@ class Cable.Subscriptions
notify: (subscription, callbackName, args...) ->
if typeof subscription is "string"
- subscriptions = (s for s in @subscriptions when s.identifier is subscription)
+ subscriptions = @findAll(subscription)
else
subscriptions = [subscription]