問題タブ [actioncable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - ActionCable、Heroku カスタム ドメイン、および Cookie
これがシナリオです。サイトに ActionCable を使用しています ( と呼びましょうwww.example.com
)。開発では完璧に動作しますが、Heroku にプッシュすると、WebSocket 接続で 302 エラーが発生します。
この問題は、Heroku でカスタム ドメインを使用していることが原因のようです。このため、WebSocket を にポイントすると、302 が表示されます。これは、 URLwss://example.com
にリダイレクトされているためだと思いますか?example.herokuapp.com
したがって、この問題を考慮して、代わりに WebSocket 接続をwss://example.herokuapp.com
. 私が今直面している問題は、それが基本的に私が指摘している新しいドメインであるため、example.com からの Cookie が と共有されないことexample.herokuapp.com
です。これはexample.herokuapp.com
、認証に使用する example.com で実際に設定されている空白の Cookie を渡していることを意味します。
署名されていないCookieをログに記録し(テストのために一時的に署名されていないだけで、セキュリティについて心配しないでください)、example.herokuapp.com
サーバーにそのCookieを設定することで、これが問題であることを確認しました。その後、見事に機能しました。
明らかに、ひどいクッキーを設定するためだけに誰かに両方のサイトにアクセスさせることはできません...
私が望んでいるのは、元の問題を修正する方法を見つけて、WebSocket を私のカスタム ドメインに向けることができ、wss://example.com
Cookie 署名の問題を心配する必要がないことです。これは可能ですか?
example.herokuapp.com
そうでない場合、ドメインに Cookie を設定する最良の方法は何ですか?
PS はい、ActionCable と Heroku に関する他の SO の質問を見てきましたが、カスタム ドメインを扱っているものはないようです。これは Cookie の回避策について述べていますが、これらは同じサブドメインではないため、このシナリオでは機能しないと思います: Action Cable を使用しながら Ruby on Rails アプリを Heroku にデプロイする (Puma ポート リスニング)
私を助けるために時間を割いてくれてありがとう:)
[編集] ここでこの質問に非常に似ているようですが、503 ではなく 302 が返されます。Heroku エラー 503、複数のドメインの webSockets
ruby-on-rails - 初期化されていない定数 > ActionCable::Server::Configuration::ApplicationCable
サーバーを実行しているときに、以下のログに表示されるエラーがスローされます。私はたくさんグーグルで検索しましたが、その背後にある理由はわかりませんでした。誰か光を当ててください。
Gemfile
ログ:
ruby - アプリケーションとアクションケーブルは Cookie を共有しません
認証にデバイスを使用していますが、あなたの方法を実装すると、「不正な接続試行が拒否されました」というメッセージが表示されました
何時間も検索した結果、次のことがわかりました。
nil を返します。次のコード ブロック。
確認したところ、確かに Cookie がありますが、Devise によって設定された Cookie データは含まれていません。
「user.id」が実際に設定されているかどうかを確認するには、ビューでそれを上げます。これは、例外として、ユーザー ID を返します。
私の質問/問題:
actioncable サーバーで Cookie が利用できないようです。
Devise によって設定された Cookie をケーブル サーバーと共有する方法はありますか?
ruby-on-rails - Redis の再接続に失敗しました - アクション ケーブル
Rails 5プレリリースバージョンでAction Cableを試しています。サーバーを起動するたびに、このエラーが発生します
サーバーを数回再起動しても解決しません。私が間違っていることはありますか?
私はUbuntu 14.04で働いています
websocket - wscat を使用して Ruby on Rails 5 ベータ版の ActionCable WebSocket に接続できない
Rails 5 Beta に同梱されている ActionCable チャット ルーム サンプルを実行しました。Web アプリは、WebSocket を上下に流れるデータで問題なく動作しました。
wscat
ただし、コマンドラインから直接 WebSocket に接続しようとすると、接続エラーが発生しました。
wscat
接続試行:
エラー応答:
最初は、Rails の偽造防止機能が接続を禁止していると思っていました。そこで、以下を に追加しましたconfig/environments/development.rb
。
ただし、同じ接続エラーが発生しました。
コマンドライン util を使用wsd
して ActionCable WebSocket に接続してみました。wsd
さらに悪いことに、カーネル パニックでクラッシュしました。
また、WebSocket Echo Test http://www.websocket.org/echo.htmlを含む他の WebSocket の両方wscat
をテストしたところ、問題なく動作しました。wsd
私は困惑しています。助言がありますか?
nginx - puma を使用した Rails 5 ActionCable の NGINX 構成
私は開発環境に Jelastic を使用しています (まだ本番環境ではありません)。私のアプリケーションは Unicorn で実行されていますが、ActionCable で websocket を発見し、アプリケーションに統合しました。
ローカルではすべて正常に動作していますが、Jelastic 環境 (デフォルトの NGINX/Unicorn 構成) にデプロイすると、JavaScript コンソールにこのメッセージが表示され、アクセス ログには何も表示されません。
以前はローカル環境にあり、構成ファイルに必要な ActionCable.server.config.allowed_request_origins を追加して解決しました。したがって、これについて開発構成を再確認しましたが、問題ありません。
そのため、ActionCable git ページで説明されている以外に、NGINX 構成に固有の何かがあるかどうか疑問に思っていました
私のアプリケーションでは、ここにリンクの説明を入力することからすべてに従いましたが、NGINX 構成については何も言及されていません
ActionCable を使用した websocket は非常に新しいことは知っていますが、誰かがそれについて私にリードしてくれることを願っています
どうもありがとう
ruby-on-rails - ノーブライナー付きのRails 5アクションケーブルが正しく機能しない
https://github.com/rails/actioncable-examplesからアクションケーブルの例を試しました。ActiveRecordでうまくいきました。RethinkDBで NoBrainer を使用すると、 ActiveJob::SerializationError (Unsupported argument type: Comment)が発生します。そのため、以下のように、self の代わりに id を activejob に渡しました。しかし、アクション ケーブル サーバーはどのチャネルもリッスンできず、CommentsChannel メソッドは呼び出されません。
コメント.rb
コメントチャンネル.rb
コメント.コーヒー