2017-07-14 10 views
1

"subscribed"メソッドが呼び出されないようなActionCableチャンネルがあります。 RailsのログにとJavascriptコンソールでActionCable "subscribed"メソッドが呼び出されない

、私は接続が行われていることがわかります。

I, [2017-07-14T16:02:28.759843 #10658] INFO -- : [ActionCable] Registered connection (Z2lkOi8vd2ViY2FzdC9Vc2VyLzM0NQ) 
... 
I, [2017-07-14T16:14:18.594274 #12208] INFO -- : [2cdfb51d-e500-49bd-8d7d-c941b8b2bb8a] Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket) 

コードをアプリ/資産/ JavaScriptの/チャネル/ chats.coffeeに(下)と呼ばれているように見えます:ブラウザのコンソールとして

... 
App.global_chat = App.cable.subscriptions.create { 
     channel: "ChatsChannel" 
     chat_room_id: $("#chat_room_id").val() 
     user_agent: navigator.userAgent 
    }, 
... 

は、チャットオブジェクトを示しており、期待通りに見えます:

> App.global_chat 
< Subscription {consumer: Consumer, identifier: "{"channel":"ChatsChannel","chat_room_id":"32","use… like Gecko) Chrome/58.0.3029.110 Safari/537.36"}", connected: function, disconnected: function, received: function…} 
... 

しかし、ログはChatsChannelの "subscribed"メソッド(以下に貼り付け)から何も表示されず、 "register_connection"メソッドは呼び出されません。

# app/channels/chats_channel.rb 
class ChatsChannel < ApplicationCable::Channel 

    def subscribed 
    logger.add_tags 'ActionCable', "subscribing" 
    logger.info("subscribing") 
    stream_from "chat_rooms_#{params['chat_room_id']}_channel" 
    current_user.register_connection(params[:chat_room_id], params[:user_agent]) 
    end 
    ... 
end 

私はActionCableの新機能です。私が見つけることができるすべてのドキュメンテーションは、接続が登録されたときに自動的に呼び出されるだけであることを示しているので、ここで何がうまくいかないのか分かりません。

これはactioncable 5.0.1です。

Javascriptを介してルビーの「購読」メソッドを強制する方法はありますか?

答えて

0

問題は、私のredisサーバーがバックグラウンドで実行されていないことが判明しました。 redis-serverをRailsアプリの外で実行すると、この問題が解決しました。

関連する問題