aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/README.md
diff options
context:
space:
mode:
authorJon Moss <me@jonathanmoss.me>2016-05-11 22:46:14 -0400
committerJon Moss <me@jonathanmoss.me>2016-05-26 22:22:04 -0400
commit1713075a80ecaaf18b1d8927aaa3b9836cc68214 (patch)
tree742be521a82b2e19f72bff3d81818bcb87c51045 /actioncable/README.md
parent0a571e4ad416a72a5827d4bcca5e4f6e8920ec93 (diff)
downloadrails-1713075a80ecaaf18b1d8927aaa3b9836cc68214.tar.gz
rails-1713075a80ecaaf18b1d8927aaa3b9836cc68214.tar.bz2
rails-1713075a80ecaaf18b1d8927aaa3b9836cc68214.zip
Add documentation about Action Cable npm package
Sorry, forgot to include in my main PR :( [ci skip] [Jon Moss, Zach Schneider]
Diffstat (limited to 'actioncable/README.md')
-rw-r--r--actioncable/README.md68
1 files changed, 68 insertions, 0 deletions
diff --git a/actioncable/README.md b/actioncable/README.md
index 8792113664..1239b555d6 100644
--- a/actioncable/README.md
+++ b/actioncable/README.md
@@ -460,6 +460,74 @@ with all the popular application servers -- Unicorn, Puma and Passenger.
Action Cable does not work with WEBrick, because WEBrick does not support the
Rack socket hijacking API.
+## Frontend assets
+
+Action Cable's frontend assets are distributed through two channels: the
+official gem and npm package, both titled `actioncable`.
+
+### Gem usage
+
+Through the `actioncable` gem, Action Cable's frontend assets are
+available through the Rails Asset Pipeline. Create a `cable.js` or
+`cable.coffee` file (this is automatically done for you with Rails
+generators), and then simply require the assets:
+
+In JavaScript...
+
+```javascript
+//= require action_cable
+```
+
+... and in CoffeeScript:
+
+```coffeescript
+#= require action_cable
+```
+
+### npm usage
+
+In addition to being available through the `actioncable` gem, Action Cable's
+frontend JS assets are also bundled in an officially supported npm module,
+intended for usage in standalone frontend applications that communicate with a
+Rails application. A common use case for this could be if you have a decoupled
+frontend application written in React, Ember.js, etc. and want to add real-time
+WebSocket functionality.
+
+### Installation
+
+```
+npm install actioncable --save
+```
+
+### Usage
+
+The `ActionCable` constant is available as a `require`-able module, so
+you only have to require the package to gain access to the API that is
+provided.
+
+In JavaScript...
+
+```javascript
+ActionCable = require('actioncable')
+
+var cable = ActionCable.createConsumer('wss://RAILS-API-PATH.com/cable')
+
+cable.subscriptions.create('AppearanceChannel', {
+ // normal channel code goes here...
+});
+```
+
+and in CoffeeScript...
+
+```coffeescript
+ActionCable = require('actioncable')
+
+cable = ActionCable.createConsumer('wss://RAILS-API-PATH.com/cable')
+
+cable.subscriptions.create 'AppearanceChannel',
+ # normal channel code goes here...
+```
+
## License
Action Cable is released under the MIT license: