問題タブ [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 - WebSockets:クライアント接続が切断されたときにすべてのサブスクライバーに通知するにはどうすればよいですか?
私が取り組んでいるWebSocketチャットデモがあります(このコードに基づいています)。ただし、クライアントとサーバー間の接続が閉じられたときに機能していないように見える部分は、ユーザーが「チャットルームを離れた」ことをすべてのサブスクライバーに通知したいと思います。クライアント接続が切断されたときにサーバーに通知/onclose関数を実行すると思いましたが、WebSocketの動作とは異なる場合があります。
これが私のEventMachineコードです:
ruby - Ruby:同じアプリケーションから静的 HTML と EventMachine WebSocket サーバーを提供する方法は?
私は簡単なチャットアプリケーションを書いています。必要な唯一の「フロントエンド」は、単一の html ファイル、javascript ファイル、およびいくつかのスタイルシートです。アプリケーションの大部分は、サーバー側の EventMachine WebSocket サーバーです。
また、これを Heroku でホストしようとしています。
現在、静的ファイルを提供するだけのsinatraアプリと、WebSocketサーバーを提供する別のアプリ(別のポート)があります。
ポート 80 (静的ファイル用) と WebSocket サーバー用の別のポートにサービスを提供/応答する 1 つのアプリケーションを起動できるように、これらを組み合わせる方法はありますか?
ruby-on-rails - RailsのEventMachine-実行ループをどこに置くか?
別のプロセスとしてではなく、Railsサーバーを実行するときに実行されるEventMachineサーバーを取得しようとしています。
したがって、たとえば、ここの単純なサーバーの例(em-websocket)を使用すると、次の(スタンドアロン?)ルビーコードが得られます。
コマンド「railsnewem-example」を実行したとすると、上記のコードは私のrails 3アプリのどこに配置されますか?
上記のコードは、理想的には別のスレッド(またはファイバー..?)で実行する必要があると思いますが、どのように見えるかはわかりません。
Webサーバーとして「thin」を使用すると、これは簡単なはずです。Herokuはデフォルトでこれを使用しているようで、ローカルでもテストできるように「薄い」gemをインストールしました。
html - Websocket-完全なメッセージを保証しますか?
Webソケットプロトコルで「onmessage」イベントが発生した場合、完全なメッセージが保証されますか、それとも最初にデータをバッファリングしてからパケットを抽出しようとするストレートTCP接続のようなものです。
ruby - Webソケットを使用してサーバーからクライアントに何らかの形式(JSON / XMLなど)でデータを送信する方法
gemの例に従ってem-websocket
、Sinatraフレームワークで実行される単純なエコーサーバーを作成しました。問題は、プレーンテキストの代わりに何らかの形式を使用してメッセージを送信する方法がわからないことです。今のところ、コードは次のようになります。
ハッシュなどの形式でメッセージを送信したいと思います。
また、クライアント側では、時間とテキストのdivを含む素敵なメッセージボックスを作成するために使用します(この場合、時間は単なる例です)。例:
それ以外の
ruby-on-rails - Ruby on Rails を使用した em-websocket gem
em-websocket gem を使用して、Web ソケット ベースのゲームの開発を開始しました。
アプリケーションをテストするには、実行してサーバーを起動します
$> ruby server.rb
次に、html ファイル (Web サーバーなし) に直接アクセスする 2 つのブラウザーを開き、再生を開始します。
しかし今は、Web サーバー、いくつかのデータベース テーブル、その他の Ruby on Rails ベースの gem を追加したいと考えています。
Web ソケット サーバーと Ruby on Rails アプリケーション間の通信をどのように実現しますか? 同じサーバーで実行し、単一のプロセスとして実行する必要がありますか? 別々のサーバーで実行し、AJAX を介して通信しますか?
認証や、ゲーム終了時のデータベースの更新などの機能をサポートする必要があります。
前もって感謝します。
ruby-on-rails - 薄いレールでem-websocketを安全に停止する
EventMachine実行ループを利用するためにシンサーバーで実行しているRailsアプリがあります。問題は、em-websocketを含めて、wsから着信する情報を処理し、EM実行ループを停止せずにWebsocketを停止および開始できるようにすることです。これが私がWebSocketを開始する方法です。
問題は開始/停止コードにあります。em-websocketのドキュメントから
問題は、内部em-websocketコードがEM:start_serverからの署名を追跡せず、EventMachine :: stop_server(signature)を呼び出してシャットダウンできることです。em-websocketを変更せずにこれらの関数をオーバーライドして、これらのWebSocketを安全に開始/停止できるようにする方法はありますか?標準のEventmachineサーバーのように機能するかどうかを確認します。
ruby-on-rails - 多数のWebSocket接続
特定のタスクのユーザー間でプッシュされたコンテンツを追跡するアプリケーションを作成しています。WebSocketを使用して新しいコンテンツを送信することを考えています。これは、その特定のタスクで現在アプリを使用しているすべてのユーザーが利用できるためです。
私はこれをRailsで書いていますが、クライアント側のアプリはiOS上にあります(おそらくAndroidでも使用される予定です)。このWebSocketソリューションは適切に拡張できない可能性があります。私は、WebSocketとある種のポーリングソリューションを使用することを決定する際に、いくつかのアドバイスと考慮事項を求めています。
Ruby on Railsサーバー(Herokuなど)は、同時に開く多数のWebSocketをサポートしますか?議論のために百万の接続を考えてみましょう。誰かが私にそのようなものを提供できる資料はありますか?
このように設計した場合、サーバーホスティングのコストははるかに高くなりますか?
何百万ものWebSocketを同時に維持することさえ可能ですか?これは最良の設計上の決定ではないかもしれないと私は感じています。
これは、適切なRailsAPIでの私の最初の試みです。アドバイスをいただければ幸いです。どうも。
ruby - イベントマシンのWebSocket接続をクラスレベルで保存しても安全ですか?
私は、ユーザーが彼の友人の1人とメッセージを交換できるチャットサーバーアプリケーションを書いています。ユーザーが接続すると、接続をクラス変数ハッシュに保存します。
@@connections[:user_id] = conn
誰かがユーザーにメッセージを送信するとき、私はハッシュで彼の接続を探し、それを介してメッセージを送信します。クライアントが単に停止し、oncloseコールバックが呼び出されない場合があります。
ruby - Websockets、em-websocket & HAProxy 502 エラー
ポート 80 で Web サーバーと Websocket サーバーを実行しようとしています。これを行うには、HAProxy を使用して、この構成を使用して接続をルーティングしています。
Google Chrome を使用してテストしています。一部のマシンでは問題なく接続できますが、他のマシンでは 502 エラーが発生し、em-websocket が次のエラーをログに記録します。
プロキシの実行を停止し、ポート 80 で Web ソケット サーバーを実行すると、問題がプロキシにあることがわかります。アップグレード パケットが有効な HTTP ではないため、Websocket を処理するときに HAProxy を http モードで実行してはならないことをどこかで読みましたが、これは私が見ている問題と関係があるのでしょうか?