pun*_*t18 6 ruby-on-rails actioncable
我在Rails 5应用程序上使用了actioncable。下面的代码在控制器中起作用,但在控制台中不起作用。
ActionCable.server.broadcast "connector_app", content: "test message"
Run Code Online (Sandbox Code Playgroud)
响应:
[ActionCable] Broadcasting to connector_app: {:content=>"test message"}
=> nil
Run Code Online (Sandbox Code Playgroud)
电缆
development:
adapter: redis
url: redis://localhost:6379/1
test:
adapter: async
production:
adapter: redis
url: redis://localhost:6379/1
Run Code Online (Sandbox Code Playgroud)
控制器代码(正常工作):
def sample_socket_message
ActionCable.server.broadcast "connector_app",
content: "test message",
head :ok
end
Run Code Online (Sandbox Code Playgroud)
解决的问题:忘记在config / initializer / redis.rb中添加以下代码
$redis = Redis.new(:host => 'localhost', :port => 6379)
Run Code Online (Sandbox Code Playgroud)
小智 5
在开发和测试模式下,ActionCable的默认行为是使用异步适配器,该适配器仅在同一过程中运行。对于进程间广播,您将需要切换到redis适配器。
由于您在开发中使用redis适配器,因此它在控制器中工作而不在控制台中工作。
电缆
test:
adapter: redis
url: redis://localhost:6379/1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1870 次 |
| 最近记录: |