問題タブ [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.

0 投票する
1 に答える
618 参照

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()うまく機能しています。

ログには、次のエラーがあります。

ありがとうございました、

0 投票する
1 に答える
457 参照

ruby-on-rails - RailsジョブはActionCableのどこから呼び出され、どのようにパラメータを渡すことができますか?

たとえばperform、この次のジョブで最初に呼び出されたメソッドは次の場所にあります。

ジョブ/message_broadcast_job.rb

assets/javascripts/channels/room.coffee にはメソッド呼び出しがあります:

しかし、これは channels/room_channel.rb で対応するメソッドを呼び出しているようです:

では、ジョブはどこから呼び出され、どのようにパラメーターを渡すことができますか? (具体的には、パラメーターを介して既に渡したルーム チャネル IDroom_channel.rbがありますが、関連するルーム チャネルからブロードキャストするには、実行アクションでこれを取得する必要もあります。

ありがとう!

0 投票する
1 に答える
1391 参照

ruby-on-rails - コーヒースクリプトで ActionCable にアクセスできない

Rails 5 とアクション ケーブルに関する DHH のチュートリアルに従っています。ファイル app/assets/javascripts/cable.coffee を指している Chrome のコンソールにエラーがあります。

ケーブルの代わりにActionCable is undefined action_cable を要求し、ファイルを移動しようとしましたが、これを変更するものは何もないようです。Rails 4 アプリから始めて、Rails gem を次のように変更したことに注意してください。

そして追加しました:

0 投票する
1 に答える
4310 参照

ruby-on-rails-5 - ActionCable: 動的チャネルの使用方法

Rails 5 と ActionCable を使用して簡単なチャットを作成しました。ここには、単純な「チャット」チャネルが 1 つあります。

チャネル サブスクリプションとメッセージ ブロードキャストを動的にして、チャット チャネルを作成し、メッセージが適切なチャネルに送信されるようにするにはどうすればよいですか?

残念ながら、これのコード例は1つも見つかりません。

アップデート

下の答えは正しいです。また、レールガイドで言及されていることもわかりました。http://edgeguides.rubyonrails.org/action_cable_overview.html#client-server-interactions-subscriptions以前は存在しなかったとは思わないでください

0 投票する
1 に答える
2087 参照

ruby-on-rails - Rails5 ActionCable には、SessionsHelper の current_user メソッドが含まれています

SessionsHelperで定義されているcurrent_userメソッドにアクセスしたいと考えています。ApplicationCable Connection クラスに含める、または要求するにはどうすればよいですか?

私にくれます

ApplicationController に相当します。channels/application_cable/connection.rb に SessionHelperを含めました。

しかし、うまくいきません。

0 投票する
3 に答える
5924 参照

javascript - App.cable.subscriptions.remove を使用して Rails 5 で actioncable チャンネルのサブスクリプションを削除するにはどうすればよいですか?

私が実行するサブスクリプションを作成するには:

しかし、クライアントが複数のチャネルにサブスクライブしないようにしたいので、この前にクライアントが持っているすべてのサブスクリプションを削除するために毎回何を実行できますか?

私は次のような超ハッキーなことをしようとしました:

しかし、購読/購読解除に入る他の多くのコンポーネントがあるため、うまくいかなかったと確信しています.

App.cable.subscriptions.remove にはサブスクリプション引数が必要ですが、何を渡せばよいでしょうか?

ありがとう!

0 投票する
1 に答える
604 参照

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 のコードはかなり単純明快で、これは機能するはずですが、機能させることができません。誰もこれについて経験がありますか?