問題タブ [em-websocket]

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 に答える
770 参照

ruby-on-rails - サーバー側で WebSocket 接続が終了しているかどうかを検出する

WebSocket 接続終了のさまざまなケースを処理したいと考えています。ログアウトまたはブラウザの終了によってクライアント側で終了した場合は、メールを送信する必要があります。また、サーバー側で終了した場合 (たとえば、サーバーの再起動後) は何もしないでください。

接続がどのように終了したかを検出する方法はありますか?

Rails 4.2 と em-websocket gem を使用しています。

0 投票する
0 に答える
313 参照

ruby-on-rails - WebSocket サーバーの設定

Rails アプリケーションでem-websocket gemを使用しています。WebSocket サーバーは初期化子で実行されます。これは次のようになります。

Railsサーバーを起動すると、WebSocketサーバーが実行されます。開発環境では完璧に動作しますが、テスト サーバーでは動作しません。そこで Nginx と Passenger を使用します。

Passenger と Nginx で WebSockets をセットアップする方法を知っている人はいますか?

更新: 私は開発環境でシンを使用しています。本番環境では Nginx と Passenger を使用していますが、これらのツールの設定は通常です。ログにエラー メッセージはありません。ブラウザ コンソールに次のエラーがあります。

Nginx の設定:

通常のUbuntuサーバーを使用しています。

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

ruby-on-rails - Rails push EM-Socket

私はレールアプリを書いています.新しいメッセージがDBに保存されるとすぐにユーザーに通知を受け取りたい. websocket には em-websocket gem を使用しています。接続後、クライアント ID とソケット インスタンスを配列に格納します。

質問: controller\model アクション (before_save など) からクライアントにデータをプッシュする方法を教えてください。em-websocket でそれを行うことはできますか?

チャット.rb

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

ruby-on-rails - レールで em-websocket を使用してトーク・ツー・トーク・システムを構築する戦略は?

サーバープッシュシステムの良い例かもしれません。システムには多くのユーザーがいて、ユーザー同士で会話することができます。次のように実行できます。1 人のユーザーが (websocket を介して) サーバーにメッセージを送信し、サーバーがそのメッセージを他のユーザーに転送します。重要なのは、ws (websocket オブジェクト) とユーザーの間のバインディングを見つけることです。以下のようなコード例:

次の問題を把握したい:

  1. wsディスクまたはデータベースに格納できるように、オブジェクトをシリアル化できますか? そうしないと、バインディングをメモリに保存することしかできません。

  2. em-websocket と websocket-rails の違いは何ですか?

  3. websocket におすすめの gem はどれですか?

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

ruby-on-rails - Rails スレッド内で変数にアクセスする

Web ベースのスライド ショー用のアプリケーションを作成しています。1 人の「マスター」ユーザーがスライド間を移動でき、全員のブラウザーがそれに従います。これを行うために、メッセージを送信するグローバル チャネルに websockets と Redis を使用しています。接続する各クライアントには、配列に格納された情報があります@clients。次に、Redis チャネルをサブスクライブするための別のスレッドがあります。ここには、配列内の全員にメッセージを送信する必要がある「on.message」ブロックが定義されています@clientsが、その配列はこのブロック内では空です (他の場所では空ではありません)。モジュール)。

この例にほぼ従っています: https://devcenter.heroku.com/articles/ruby-websockets

カスタムミドルウェアクラスにある関連コード:

@clientsインスタンス変数はスレッド間で共有されないため、新しいスレッド内でアクセスすると配列は空になりますか? もしそうなら、どうすればスレッド間で変数を共有できますか?

また、 $clients (グローバル変数、スレッド間でアクセスできる必要があります) を使用してみましたが、役に立ちませんでした。