ActionCable.server.broadcast from the console

wintermeyer picture wintermeyer · Feb 3, 2016 · Viewed 11.1k times · Source

I can use the following code in the controller but not in the console (both development environment). I'm using Rails 5.0.0.beta2.

ActionCable.server.broadcast 'example_channel', message: '<p>Test</p>'

The console:

>> ActionCable.server.broadcast 'example_channel', message: '<p>Test</p>'
[ActionCable] Broadcasting to example_channel: {:message=>"<p>Test</p>"}
=> []

How can I use it in the console?

Answer

Sam Pohlenz picture Sam Pohlenz · Feb 10, 2016

The default behavior for ActionCable in development mode is to use the async adapter, which operates within the same process only. For inter-process broadcasting, you will need to switch to the redis adapter.

To enable redis in development mode, you will need to edit config/cable.yml:

redis: &redis
  adapter: redis
  url: redis://localhost:6379/1

production: *redis
development: *redis
test: *redis