aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source
diff options
context:
space:
mode:
authorRyan Castner <audiolion@users.noreply.github.com>2019-03-31 13:41:12 -0400
committerKasper Timm Hansen <kaspth@gmail.com>2019-03-31 19:41:12 +0200
commit6d488a22d361d19e3de98c603d98e64ccea8a2f3 (patch)
tree45eb50ca88b0cc1e14f94c5eefd6a97eb901451c /guides/source
parentba4e74e1b73437cce08e319286103e025f7cc803 (diff)
downloadrails-6d488a22d361d19e3de98c603d98e64ccea8a2f3.tar.gz
rails-6d488a22d361d19e3de98c603d98e64ccea8a2f3.tar.bz2
rails-6d488a22d361d19e3de98c603d98e64ccea8a2f3.zip
feat(js): Dynamic ActionCable URL (#35579)
* Failing test case * feat: Dynamic Url Generation Change createWebSocketURL to be a closure that allows url to be evaluated at the time the webSocket is established * refactor: createWebSocketURL to Consumer, remove need for closure Move initial call to createWebSocketURL in createConsumer * docs: Add documentation for dynamic url and string args to createConsumer Co-Authored-By: rmacklin <rmacklin@users.noreply.github.com> [Ryan Castner, rmacklin]
Diffstat (limited to 'guides/source')
-rw-r--r--guides/source/action_cable_overview.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/guides/source/action_cable_overview.md b/guides/source/action_cable_overview.md
index c531b6eee2..7bf6a73797 100644
--- a/guides/source/action_cable_overview.md
+++ b/guides/source/action_cable_overview.md
@@ -190,6 +190,23 @@ This will ready a consumer that'll connect against `/cable` on your server by de
The connection won't be established until you've also specified at least one subscription
you're interested in having.
+The consumer can optionally take an argument that specifies the url to connect to. This
+can be a string, or a function that returns a string that will be called when the
+WebSocket is opened.
+
+```js
+// Specify a different url to connect to
+createConsumer('https://ws.example.com/cable')
+
+// Use a function to dynamically generate the url
+createConsumer(getWebSocketURL)
+
+function getWebSocketURL {
+ const token = localStorage.get('auth-token')
+ return `https://ws.example.com/cable?token=${token}`
+}
+```
+
#### Subscriber
A consumer becomes a subscriber by creating a subscription to a given channel: