mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add documentation about Action Cable npm package
Sorry, forgot to include in my main PR :( [ci skip] [Jon Moss, Zach Schneider]
This commit is contained in:
parent
0a571e4ad4
commit
1713075a80
1 changed files with 68 additions and 0 deletions
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue