diff options
author | Javan Makhmali <javan@javan.us> | 2015-07-23 17:20:04 -0400 |
---|---|---|
committer | Javan Makhmali <javan@javan.us> | 2015-07-23 17:20:04 -0400 |
commit | dc4f8b352cb6b14aff8690f410e4a5bcb2a8280e (patch) | |
tree | 3d47dbd38d943ddd549935a021352e2c50272484 | |
parent | 3fb1a84f538d47a3c691b245a8dd0f5b4f8184e4 (diff) | |
download | rails-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
-rw-r--r-- | lib/assets/javascripts/cable/subscriptions.js.coffee | 8 |
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] |