問題タブ [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 - Heroku で ActionCable を使用して Rails5 beta3 アプリをデプロイする際に無効な Redis パスワード
まず第一に、私のアプリケーションは開発中に問題なく動作します。チュートリアルに従って Heroku に Action Cable アプリをデプロイしてきましたが、次の問題に遭遇しました。
私のアプリの設定はそのようです:
config/cable.yml:
初期化/redis.rb
config/routes.rb のこの行
実稼働中のアプリでは、JS コンソールのエラーや警告はありませんが、ログで ActionCable マジックが機能していない理由を確認できます。
私はheroku run console
それを試すことができ、それはREDIS.set()/get()
うまく機能しています。
ログには、次のエラーがあります。
ありがとうございました、
ruby-on-rails - RailsジョブはActionCableのどこから呼び出され、どのようにパラメータを渡すことができますか?
たとえばperform
、この次のジョブで最初に呼び出されたメソッドは次の場所にあります。
ジョブ/message_broadcast_job.rb
assets/javascripts/channels/room.coffee にはメソッド呼び出しがあります:
しかし、これは channels/room_channel.rb で対応するメソッドを呼び出しているようです:
では、ジョブはどこから呼び出され、どのようにパラメーターを渡すことができますか? (具体的には、パラメーターを介して既に渡したルーム チャネル IDroom_channel.rb
がありますが、関連するルーム チャネルからブロードキャストするには、実行アクションでこれを取得する必要もあります。
ありがとう!
ruby-on-rails - コーヒースクリプトで ActionCable にアクセスできない
Rails 5 とアクション ケーブルに関する DHH のチュートリアルに従っています。ファイル app/assets/javascripts/cable.coffee を指している Chrome のコンソールにエラーがあります。
ケーブルの代わりにActionCable is undefined
action_cable を要求し、ファイルを移動しようとしましたが、これを変更するものは何もないようです。Rails 4 アプリから始めて、Rails gem を次のように変更したことに注意してください。
そして追加しました:
ruby-on-rails-5 - ActionCable: 動的チャネルの使用方法
Rails 5 と ActionCable を使用して簡単なチャットを作成しました。ここには、単純な「チャット」チャネルが 1 つあります。
チャネル サブスクリプションとメッセージ ブロードキャストを動的にして、チャット チャネルを作成し、メッセージが適切なチャネルに送信されるようにするにはどうすればよいですか?
残念ながら、これのコード例は1つも見つかりません。
アップデート
下の答えは正しいです。また、レールガイドで言及されていることもわかりました。http://edgeguides.rubyonrails.org/action_cable_overview.html#client-server-interactions-subscriptions以前は存在しなかったとは思わないでください
ruby-on-rails - Rails5 ActionCable には、SessionsHelper の current_user メソッドが含まれています
SessionsHelperで定義されているcurrent_userメソッドにアクセスしたいと考えています。ApplicationCable Connection クラスに含める、または要求するにはどうすればよいですか?
私にくれます
ApplicationController に相当します。channels/application_cable/connection.rb に SessionHelperを含めました。
しかし、うまくいきません。
javascript - App.cable.subscriptions.remove を使用して Rails 5 で actioncable チャンネルのサブスクリプションを削除するにはどうすればよいですか?
私が実行するサブスクリプションを作成するには:
しかし、クライアントが複数のチャネルにサブスクライブしないようにしたいので、この前にクライアントが持っているすべてのサブスクリプションを削除するために毎回何を実行できますか?
私は次のような超ハッキーなことをしようとしました:
しかし、購読/購読解除に入る他の多くのコンポーネントがあるため、うまくいかなかったと確信しています.
App.cable.subscriptions.remove にはサブスクリプション引数が必要ですが、何を渡せばよいでしょうか?
ありがとう!
ruby-on-rails - ActionCable が定期タイマーを呼び出すことができない
これは Rails では文書化されていませんが、ActionCable にはPeriodicTimers
https://github.com/rails/rails/blob/master/actioncable/lib/action_cable/channel/periodic_timers.rbというモジュールがあります。
今、私は次のapp/channels/requests_channel.rb
ようにしてこれをテストしようとしました:
ストリームに接続してサブスクライブすると、コンソールに何も表示されません。ActionCable のコードはかなり単純明快で、これは機能するはずですが、機能させることができません。誰もこれについて経験がありますか?