1

私はHerokuの上のアクションケーブルと私のアプリに問題があります: ':// localhostを:WS 3000 /ケーブル' にコンフィグアクションケーブル - エラーはlocalhost:3000 /ケーブル

のWebSocket接続に失敗しました:接続でエラー設立:ネット:: ERR_CONNECTION_REFUSED

マイproduction.rb:

config.action_cable.url = "wss://NAME.herokuapp.com/cable" 
    config.action_cable.allowed_request_origins = ['https://NAME.herokuapp.com', 'http://NAME.herokuapp.com'] 

私もcable.jsでサーバーを指定しようとしました:

@App ||= {} 
App.cable = ActionCable.createConsumer("wss://NAME.herokuapp.com/cable") 

私はdevelopment.rbでそれを変更しようとしましたが、何の助けにもなりませんでした。 Herokuはまだlocalhostに接続しようとしています。

私はそれと共通するものは何もない別の奇妙なことは、アプリケーションがいくつかのjsにもかかわらずalert( 'test')やconsole.log( "haha")のようないくつかのjsコードを処理できないことですコードが動作し、私は資産を試しました:プリコンパイルも。

localhostでは、すべてが完全に機能します。どのようなヒロクと設定で間違っていることができますか?

答えて

0

ActionCableは開発中ですが、ケーブル接続用とRails用の2台のサーバを起動する必要がありました。私はそれが最終リリースにはまだ必要とは思わない。

私の推測では、あなたのHerokuインスタンスにはRedisがプロビジョニングされていないのに対し、ProductionではActionCableはサーバー通信のためにRedisに依存しています。

は、この問題を解決するには、次の操作を行う必要があります:あなたのconfig/cable.ymlheroku config | grep REDISTOGO_URL

heroku addons:add redistogoは、与えられたものにRedisのURLを設定します。 URLの代わりにENV['REDISTOGO_URL']も使用できるはずです。

それが役立つかどうか教えてください。

+0

私はredisサーバをセットアップしましたが、これは問題ではありませんが、とにかく感謝します。これはherokuにwebsocketの正しいサーバーに接続する方法を伝えることだと思います。 – Dudis

-1

ローカルでは動作していてもリモートではない場合、SSLに問題がある可能性があります。あなたが適切に安全なのWebSocket(WSS)のSSLエンドポイントを設定していることを確認します:https://blog.heroku.com/real_time_rails_implementing_websockets_in_rails_5_with_action_cablehttps://devcenter.heroku.com/articles/ssl-endpoint

はまた、アクションケーブルをセットアップする方法についてHerokuの上の優れたブログ記事があります。悲しいかな、この記事では、Herokuの展開が機能するためにSSLエンドポイントを設定する必要性については言及していません。

関連する問題