問題タブ [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 投票する
2 に答える
151 参照

ruby-on-rails - rails5のactioncableの見方

最近、Rails5 の ActionCable が非常に興味深いことがわかったので、Rails5 の ActionCable の内部を掘り下げたいと思います。しかし、どこから始めればよいかわかりませんでした。

私は誰かが私のために道を切り開くことを望みます: 例えば: ActionCable と faye と message_bus の違いは何ですか..彼らは websockets のような同じプロトコルを使用しますか?

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

ruby-on-rails - アクションケーブル使用時の状態整合のとり方

ユーザーモデル、セッションパラメーター、その他の情報を保持する ServiceClass のインスタンスである current_user のようなものを使用すると仮定しましょう。問題は、websocket との接続中に変数が設定され、異なるサブスクリプションのすべての AC 呼び出しで再利用されることです。

次に、ある時点でユーザーが自分のユーザー名を更新することを決定すると、 current_user.update(new_username) を呼び出すと問題なく動作します。

ただし、そのユーザーの下にある他の A​​C サブスクリプションは、依然として古いユーザー モデルを使用しています。各サブスクリプションは独自のスレッドで動作するため、あるスレッドでユーザー モデルを更新しても、他のスレッドでは更新されないと思います。そのような場合の最善のアプローチは何ですか?

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

ruby-on-rails - スタンドアロン サーバーとしての Rails 5 アクションケーブル

アクションケーブルに関するドキュメントはあまりないので、私はこれについて少し迷っています. Rails 5アプリで遊んでいます.rails5アプリを純粋にAPIとして使用し、JSを別の場所でホストしようとしています。したがって、actioncable サーバーを起動すると、組み込みのブラウザー ソケット サポートを使用するだけで、Websocket に非常に簡単に接続できます。

無事接続できました。私はの形でpingを取得しています

ただし、クライアントにメッセージをブロードキャストできないようです。私は試した:

しかし、入ってくるのは ping だけです。ActionCable には、Rails アプリで「そのまま機能する」チャネルやもののように、まだ完全には理解していない独自の概念が付属しています。しかし、actioncable のソケット サーバーを使用して別のスタンドアロン JS アプリを正常に構築するにはどうすればよいでしょうか?

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

ruby-on-rails - ActionCable: ユーザーごとに 1 つのチャネル

Railsアプリの通知に取り組んでいます。User モデルと Controller があり、User には多くの Likes 関連付けを持つ User に関連付けられた Like モデルがあります。

アイデアは、ユーザーが別のユーザーのプロフィールを気に入った場合、プロフィールの所有者がライブ通知を受け取ることです。

これは、ActionCable を理解するための私のアプリです。ケーブル apiを調べましたが、pub-sub は初めてでした。単一のチャネルを介して正常に通信を行うことができ、承認も正常に使用されました。しかし、ユーザーごとに単一のチャネル (動的に生成されたチャネル) を使用する方法をまだ理解していないため、あるユーザーに投稿されたメッセージが別のユーザーに送信されません。

動的チャネルは可能ですか?

または、単一のチャネルがすべてのユーザーのニーズを満たす他の方法はありますか?

0 投票する
2 に答える
3892 参照

ruby-on-rails - アクション ケーブル レールで ping 間隔を変更する方法

私は ActionCable を使用しており、3 秒間隔ごとにサーバーから ping を受信して​​います (ActionCable ライブラリに記載されています)。私の質問は次のとおりです: サブスクリプション時に ping 間隔を変更するにはどうすればよいですか?

何か案が?

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

ruby-on-rails - AWS Elastic Beanstalk を使用して Rails ActionCable をデプロイする

AWS Elastic Beanstalk で DHH からチャット デモをデプロイしようとしています。ここのチュートリアルに従いました: https://keithpblog.wordpress.com/2015/12/30/rails-5-tutorial-chat-app-can-we-deploy-itそして、なんとか解決策を得ることができました単一のインスタンスにデプロイされ、Redis も稼働しています。しかし、何かを投稿しようとすると、メッセージはデータベースに保存されますが、WebSocket からは返されません。production.log を確認したところ、次のエラー メッセージが表示されます。

E, [2016-05-20T20:33:52.676577 #24281] エラー -- : 例外が発生しました - Gem::LoadError(Action Cable pubsub アダプターに 'redis' を指定しましたが、gem が読み込まれていませんgem 'redis'。Gemfile に追加します。 (そして、そのバージョンが Action Cable に必要な最低限のものであることを確認してください)。

E、[2016-05-20T20:33:52.676826 #24281] エラー -- : /opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.rc1/ lib/action_cable/server/configuration.rb:37:in `pubsub_adapter でレスキュー'

/opt/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.rc1/lib/action_cable/server/configuration.rb:34:`pubsub_adapter'内

Gemfile にもあります: gem 'redis', '~>3.2'

何か案は?ありがとう!