問題タブ [private-pub]
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-3.2 - セグメント キーを持つリソース ルートで Private Pub を使用するにはどうすればよいですか?
現在、Rails 3 プロジェクトで Private Pub を使用しているときに問題が発生しています。すべての例は、 "/messages/new"のようなルートへのパブリッシュ/サブスクライブの使用法を示しています 。
ルート.rb
次のものを作成します
したがって、私は次のように使用しています。
見る:
= subscribe_to "/messages/#{@cid}/chat"
コーヒー応答ビュー:
しかし、ブロックがトリガーされることはありません! 同じルートのはずですよね?つまり、セグメントキーが一致します...どのビューでもまったく機能せず、ブロック内のコードに到達することはありません。私は何を間違っていますか?
私を助けてください!
ホセ。
ノート。私が見たすべての例は、この宝石を一般的なチャットに使用することを示しているようです。私の意図は、さまざまなピアツーピアのプライベートな会話 (Facebook チャットなど) のために、さまざまなチャネルを作成することです。
ruby-on-rails - Rails 3で実際のチャットアプリケーションを構築する方法は?
チャット機能を備えた Web アプリを構築しています。これには private pub gem を使用することにしました。ただし、プライベート パブでは、このコード スニペットでチャンネルを購読する必要があります
ここで、このコードを 2 つのクライアント (チャット要求を開始したクライアントとチャット要求を受信したクライアント) で実行し、それも一意のチャネルで実行して、チャネルにサブスクライブするクライアントのペアのみが存在するようにします。チャットの開始者にチャネルを購読させることはできますが、相手側の「意図した」クライアントにその特定のチャネルを購読させるにはどうすればよいですか?
DBにjavascriptのフィールドを保持し、フィールドがnullでない場合にクライアントに実行させる必要がありますか?..もちろん、その場合はロングポーリングを使用する必要があります。
ruby-on-rails - Rails 4 で Private_Pub を動作させるにはどうすればよいですか?
Readme の代替使用構文を使用して、Private_pub を Rails 4 で動作させる方法を理解しようとしています。それは私のために働いていません。
単一のコントローラーとインデックス アクション (ルート ルートとして設定) を使用して、まったく新しい Rails 4 アプリを作成しました。
home_controller.rb
home.js.コーヒー
fayeサーバーを起動しました
Rackup private_pub.ru -s thin -E production
Rails サーバーを起動し、ルート ページ ("home#index") に移動しましたが、何も起こりません。faye サーバーは、何も起こっていないことを示しています。私の理解では、home#index にアクセスするとアラート ボックスがポップアップ表示されるはずですが、何も起こらず、その理由がわかりません。
何か案は?ありがとう。
ruby-on-rails - RubyOnRails - PrivatePub Gem - 単一のサブスクリプションで表示する複数のパブリッシュ
Facebook が提供するような通知システムを実装するための gem として、private_pub を使用しています。そのために、ビュー内のチャネルにサブスクライブし、さまざまな場所 (異なるコントローラー) から公開しています。
何が起こっているのかというと、1 つのサブスクリプションで多くのパブリッシュを取得することがあります。なぜこれが起こるのかについて何か考えがありますか?
私の最初の疑いは、通知メソッドを何度も呼び出している可能性があるということでした (ある種のループまたは何かで、しかし、1 回しか呼び出されていないことがわかります。したがって、問題は pub/sub の間のどこかにあるに違いないと思いますほとんどの場合、ビューに通知するときに何か間違ったことをしているためです。
次に、実装の一部を紹介します。
私のウェブサイトの _header.html.erb パーシャルで、次のようにユーザーの通知チャネルを購読します。
たとえば、私の friends_controller では、友人を追加するときに、通知を表示するための html を生成し、次のように通知を前に付けて jquery を公開します。
html_text = render_to_string(:partial => '通知/通知', :locals => {通知: 通知}, :formats => [:html]).squish jquery = "$('#notifications_" + user.id.to_s + "').prepend('#{html_text}');" PrivatePub.publish_to("/notifications/" + user.id.to_s, jquery)
長文で申し訳ありませんが、どなたかお力添えいただければ幸いです。前もって感謝します。
ところで、Ruby 2.0.0p247 で Rails 4.0.0 を実行しています。
ruby-on-rails - apache2 を使用して private_pub gem の rails3 で本番環境の faye のシン サーバーを有効にする方法
private_pub
アプリケーションでライブチャットにgemを使用しrails 3.2
ており、開発モードでは完全に機能していますが、本番環境でそれを行う方法に行き詰まっています。
apache2
制作で使用しています。サーバーでこのコマンドを実行したとき
RAILS_ENV=production bundle exec rackup private_pub.ru -s thin -E production
サーバーを起動しthin
ますが、アプリはからの応答を待ち続けます
http://www.example.com:9292/faye.js
それは何もしません。faye
本番環境で接続できません
事前に助けてくれてありがとう
ruby-on-rails - RSPEC、private_pub、および Resque を使用した受け入れテスト
Ryan Bates の private_pub gem ( https://github.com/ryanb/private_pub ) と Resqueを使用するプロセスの受け入れテストを作成するためのちょっとしたガイダンスを探しています。
私のコントローラーには、Resque でファイル生成プロセスをキューに入れ、「待機中」のモーダル ウィンドウを表示する AJAX 要求を行う実行アクションがあります。モーダル ウィンドウには、private_pub チャネルにサブスクライブし、そのチャネルでメッセージを待機するための JavaScript が含まれています。Resque ワーカーでのファイル生成プロセスが完了すると、新しく生成されたファイル名を含むメッセージが private_pub にプッシュされます。モーダルの JavaScript はメッセージを受け取り、ファイル名を使用してブラウザでファイルのダウンロードを開始します。
このプロセスでテストを実行するためのテクニックに関する提案を探しています。私はprivate_pubサーバーをモックすることを検討しました(多くのグーグルの後でもこれを達成する方法がわからない)ので、事前にステージングされたファイルを返すだけです。基本的に、テスト環境で private_pub サーバーと Resque インフラストラクチャ全体を実行する必要なく、ワークフローを実行する方法が必要だと思います。
ruby-on-rails - セグメント キーと coffeescript バリアントを持つチャネルで Private-pub を使用する
private_pubを使用して、Facebook に似たプッシュ通知システムを複製しようとしています。理想的には、これをリンクして、グリッターなどの宝石を使用して通知を表示したいと思います(他の宝石の提案は大歓迎です)
コントローラーから特定のアクションが呼び出されるたびに、特定の ID の一部であるすべてのサブスクライバーに通知を送信したいと考えています。ログインしている限り、レイアウトに を配置することで、チャンネルに登録されsubscribe_to
ます。
ビューで:
コントローラーで
これは問題なく動作しますが、応答としてより洗練されたものalert
(グリッター通知など) を使用したいので、代わりに:
チュートリアルに従って、これには coffeescript を使用します。ただし、単純なアラートを取得できません(おそらくチャネルのIDが原因です)
この質問では、OP は js.erb ビューを使用してこれを解決できました。しかし、私はそれを機能させることができません。
免責事項: 私の js と coffeescript の知識はほとんどゼロです。
どんな助けでも大歓迎です:)
編集
詳細情報: パブリック API の一部であるコントローラーにメソッドがあり、POST 要求が必要です。すべて問題なければ、JSON 成功応答を送信します。これとは別に、同じメソッドが特定のグループのすべてのユーザーに通知を送信します。
私は実際にこれを機能させることができ、これをコントローラーに入れました:
コールバック メソッド:
グリッターのものを入れmy_api_controller/callback.js.erb
ます:
注: チャネルへのサブスクリプションは (レイアウトを介して) すべてのビューで行われるため、任意のページ/ビューで通知を受け取ることができます。
現時点での問題は、ご想像のとおり、JSON 応答です。2 つの応答をレンダリングできないため、js.erb のみが呼び出されますが、JSON 応答は送信されません。