2017-03-02 26 views
4

rails 5 appでactioncableを使用しました。以下のコードはコントローラでは動作しますが、コンソールでは動作しません。Railsでコンソールからアクション可能なブロードキャストが動作しない

ActionCable.server.broadcast "connector_app", content: "test message" 

応答:

[ActionCable] Broadcasting to connector_app: {:content=>"test message"} 
=> nil 

cable.yml

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

test: 
    adapter: async 

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

Contollerコード(それが正常に動作します):解決

def sample_socket_message 
    ActionCable.server.broadcast "connector_app", 
     content: "test message", 
    head :ok 
end 

問題: はコードの下に追加することを忘れcでonfig /初期化子/ redis.rb

$redis = Redis.new(:host => 'localhost', :port => 6379) 
+0

は、私はまだ、でも右のRedisの設定で、他の提案を同じ問題がありますか? – rkpasia

+0

端末で表示できるエラーメッセージは何ですか? – puneet18

+0

私も問題を修正しました。私は自分のケーブルを、アプリケーションの 'config/initializers/redis.rb'以外のredisで別のDB idに向けていました – rkpasia

答えて

0

開発およびテストモードでActionCableのデフォルトの動作は、同じプロセス内で動作非同期アダプタを使用することです。プロセス間のブロードキャストの場合、Redisアダプタに切り替える必要があります。

開発中にRedisアダプタを使用しているため、コントローラで動作していて、コンソールで作業していません。

cable.yml

test: 
    adapter: redis 
    url: redis://localhost:6379/1 
関連する問題