問題タブ [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.
ruby-on-rails - サーバー側で WebSocket 接続が終了しているかどうかを検出する
WebSocket 接続終了のさまざまなケースを処理したいと考えています。ログアウトまたはブラウザの終了によってクライアント側で終了した場合は、メールを送信する必要があります。また、サーバー側で終了した場合 (たとえば、サーバーの再起動後) は何もしないでください。
接続がどのように終了したかを検出する方法はありますか?
Rails 4.2 と em-websocket gem を使用しています。
ruby-on-rails - WebSocket サーバーの設定
Rails アプリケーションでem-websocket gemを使用しています。WebSocket サーバーは初期化子で実行されます。これは次のようになります。
Railsサーバーを起動すると、WebSocketサーバーが実行されます。開発環境では完璧に動作しますが、テスト サーバーでは動作しません。そこで Nginx と Passenger を使用します。
Passenger と Nginx で WebSockets をセットアップする方法を知っている人はいますか?
更新: 私は開発環境でシンを使用しています。本番環境では Nginx と Passenger を使用していますが、これらのツールの設定は通常です。ログにエラー メッセージはありません。ブラウザ コンソールに次のエラーがあります。
Nginx の設定:
通常のUbuntuサーバーを使用しています。
ruby-on-rails - Rails push EM-Socket
私はレールアプリを書いています.新しいメッセージがDBに保存されるとすぐにユーザーに通知を受け取りたい. websocket には em-websocket gem を使用しています。接続後、クライアント ID とソケット インスタンスを配列に格納します。
質問: controller\model アクション (before_save など) からクライアントにデータをプッシュする方法を教えてください。em-websocket でそれを行うことはできますか?
チャット.rb
ruby-on-rails - レールで em-websocket を使用してトーク・ツー・トーク・システムを構築する戦略は?
サーバープッシュシステムの良い例かもしれません。システムには多くのユーザーがいて、ユーザー同士で会話することができます。次のように実行できます。1 人のユーザーが (websocket を介して) サーバーにメッセージを送信し、サーバーがそのメッセージを他のユーザーに転送します。重要なのは、ws (websocket オブジェクト) とユーザーの間のバインディングを見つけることです。以下のようなコード例:
次の問題を把握したい:
ws
ディスクまたはデータベースに格納できるように、オブジェクトをシリアル化できますか? そうしないと、バインディングをメモリに保存することしかできません。em-websocket と websocket-rails の違いは何ですか?
websocket におすすめの gem はどれですか?
ruby-on-rails - Rails スレッド内で変数にアクセスする
Web ベースのスライド ショー用のアプリケーションを作成しています。1 人の「マスター」ユーザーがスライド間を移動でき、全員のブラウザーがそれに従います。これを行うために、メッセージを送信するグローバル チャネルに websockets と Redis を使用しています。接続する各クライアントには、配列に格納された情報があります@clients
。次に、Redis チャネルをサブスクライブするための別のスレッドがあります。ここには、配列内の全員にメッセージを送信する必要がある「on.message」ブロックが定義されています@clients
が、その配列はこのブロック内では空です (他の場所では空ではありません)。モジュール)。
この例にほぼ従っています: https://devcenter.heroku.com/articles/ruby-websockets
カスタムミドルウェアクラスにある関連コード:
@clients
インスタンス変数はスレッド間で共有されないため、新しいスレッド内でアクセスすると配列は空になりますか? もしそうなら、どうすればスレッド間で変数を共有できますか?
また、 $clients (グローバル変数、スレッド間でアクセスできる必要があります) を使用してみましたが、役に立ちませんでした。