Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActionCable.server.broadcast from the console

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?

like image 755
wintermeyer Avatar asked Feb 03 '16 12:02

wintermeyer


People also ask

Does ActionCable use Redis?

ActionCable is backed by Redis Pub/Sub. Redis is one incredible piece of engineering which we use extensively in our Ably infrastructure.

What is action cable used for?

1 What is Action Cable? Action Cable seamlessly integrates WebSockets with the rest of your Rails application. It allows for real-time features to be written in Ruby in the same style and form as the rest of your Rails application, while still being performant and scalable.

How do you test an action cable?

Testing Action Cable To test this connection class, we can use connect method to simulate a client server connection and then test the state of connection is as expected. The connection object is available in the test.

What are sockets in rails?

They are an API that provides “socket” persistent connections between a server and a client. This enables both server and client to send data at any time.


1 Answers

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
like image 94
Sam Pohlenz Avatar answered Oct 21 '22 20:10

Sam Pohlenz