問題タブ [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 に答える
932 参照

ruby - Ruby em-websocketブロッキングですか?

私は2つのスレッドを持つrubyプログラムを書いています。1つは着信UDP接続をリッスンし、もう1つはクライアント側のブラウザーが読み取るWebSocketでブロードキャストします。私はem-websocketgemを使用しています。ただし、UDPリスナースレッドが呼び出されることはなく、コードはWebSocket初期化コード内にとどまっているようです。em-websocketがブロックしているためだと思いますが、それを示唆する情報をオンラインで見つけることができませんでした。それは私の側のエラーですか?私はルビーに少し慣れていないので、自分が間違っていることを理解することができません。

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

ruby - EM-WebSocketまたはGoliathを使用する複数のサブスクライバー

そこで、ユーザーが別のルートにアクセスして、そのチャネルのみにサブスクライブできるように、em-websocket(または場合によってはGoliath )をセットアップしようとしています。たとえば、次のようになります。

そこで開いているブラウザは、に公開されたメッセージのみを受信しますchannel_1。実際、その時点までは、パラメータを使用するために解決するこのようなルートである必要はありません。だから私はAMQPを使用していて、直接交換とルーティングキーの概念があります。WebSocketの場合と類似したものはありますか?

Goliathサーバーは機能していますが、問題は、共有エンドポイントを使用しているため、WebSocket接続で開いているすべてのブラウザーが同じメッセージを受信して​​いると思うことです。これが私が行っていることです。

したがって、この例ではAMQPを使用していますが、これは引き続き使用したいのですが、問題は、各クライアントが再インスタンス化EM::Channel.newされ、メッセージがそのチャネルにプッシュされることです。複数のクライアントがどのように存在するかがわかりません。さまざまなチャネルにサブスクライブしました。

これを理解したり、より適切なデザインパターンに導いたりするのに役立ちます。

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

ruby - em-websocket - *** バッファ オーバーフローが検出されました ***: ruby​​ が終了しました

eventmachine + em-websocket + redis を使用して通知サーバーを構築しようとしています。ほぼすべてのコードを完成させた後は良さそうです。しかし、接続のテストを開始すると、何かが起こりました。接続は 1015 を超えることはできません (なぜ 1015 なのかわかりません)。

コードを単純化して問題を見つけようとしていますが、何ができるかわかりません。

環境

  • RVM Ruby ruby​​-1.9.3-p194 (reeも試しました)
  • サーバー: Ubuntu 12.04 (Mountain Lion も試しました)
  • クライアント: マウンテン ライオン

宝石

  • em-websocket 0.3.8
  • eventmachine 0.12.10 (1.0.0.beta.4も試しました)
  • em-websocket-client 0.1.1

クライアント

サーバ

エラーメッセージ

私が考えるいくつかの可能性があります:

  1. OS カーネルの問題。いくつかの設定を変更して修正できます。
  2. ルビーの問題
  3. EventMachine の問題
  4. em-websocketの問題

誰でも私にいくつかのヒントを与えることができます、ありがとう:)

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

ruby - WebSocket用のruby用の安定した本番環境対応のライブラリはありますか?

私はしばらくの間node.jsでSocket.ioを使用してきましたが、Rubyでこれを実行したいと思っています。利用可能なプロジェクトがいくつかあるようですが、それらのほとんどは死んでいます。

私が見つけた唯一のプロジェクトはem-websocketですが、これは非常に低レベルであり、クライアント側のライブラリはありません。

私はいくつかのプロジェクトを見逃しているのでしょうか、それともライブラリーでしょうか、それともRubyでWebSocketを実行する方法が本当にないのでしょうか?

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

ruby - EventMachine と em-websocket - キューからの読み取りとチャネルへのプッシュ

私は eventmachine を使用して HornetQ トピックから読み取り、EM Websocket 接続によってサブスクライブされているチャネルにプッシュします。@topic.receive ループがブロックされないようにする必要があるため、proc を作成し、コールバックなしで EventMachine.defer を呼び出しています。これは無期限に実行されます。これはうまくいきます。Thread.new を使用することもできました。

私の質問は、これはストリーム/キューから読み取ってデータをチャネルに渡す正しい方法ですか?これを行うためのより良い/他の方法はありますか?

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

websocket - em-websocketおよびjavascriptクライアント接続

単純なeventmachineWebソケットサーバー(eventmachine 1.0.0)があります。

次のコードを使用して、JavaScriptクライアントを介して接続しようとしています。

以前のバージョンのサファリでは、クライアントがサーバーに接続していない最新バージョンで問題なく動作していました。

前回のChromeDev安定版でも試してみましたが、動作しません。

Webソケットヘッダーが送信されますが、保留状態のままです。

Webソケットにテキストメッセージを送信すると、を受け取りますINVALID_STATE_ERR: DOM Exception 11

ドラフトの変更があるのを見ましたが、em-websocket0.3.8はすでにそれを実装していると思いました。

この問題の解決を手伝ってもらえますか?

どうもありがとう

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

ruby-on-rails - Railsサーバーがem-websocketで起動しない

em-websocket を使用して Rails Websocket アプリケーションを構築しようとしています。以下のコードをファイル config/inititalizers/websocket.rb に配置しましたが、「rails server」を実行するとアプリケーションが起動しません。コードを削除すると、正常に起動します。私のローカルマシンとサーバーでも同じことが起こります。

このコンソールの出力を取得します

上記のコードを削除すると、問題なく起動し、次のようになります。

どんなアイデアでも大歓迎です

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

ruby - Web ソケットを介したマルチチャネル pub/sub のスケーリング

私は、ウェブソケットを介したチャネリングされたパブ/サブスタイル通信の最小限の機能実装を提供するこの要点を調べてきました。

EM::Channel複数のチャネルの場合、要件に従ってオンザフライで作成できるインスタンスのローカル ハッシュを使用できます。私が懸念しているのは、サーバー インスタンスのクラスターをサポートするためにこのセットアップをどのようにスケーリングできるか、またはクラスター化された展開で使用できる Web ソケットを介してチャネリングされた pub/sub を容易にするために利用できる代替手段は何ですか?

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

ruby - EventMachine を使用してループ内からクライアントと通信するにはどうすればよいですか?

プログラムの進行状況 (ここではループとして例示) を Web サイトにリアルタイムで表示したいと考えています。

適切な Ruby サーバーが実行されている場合、クライアントはブラウザーを使用して websocket 経由でサーバーに接続し、接続すると、新しく生成されたプロセスに関する「更新」をリアルタイムで受信できるはずです。ポーリングや Ajax は必要ありません。

これをテストする私の考えは、クライアント側の JavaScript を使用して、EventMachine::WebSocket とクライアント ブラウザーの間で二重通信を確立することです。ループを構築し、ブラウザ クライアントに更新を送信します。

ruby_socket_server.rb:

main.js:

次のようになると思います。

  • サーバー: 私はループ 1 にいます。
  • クライアント: ループ 1 の通知を受け取りました。
  • サーバー: 私はループ 2 にいます。
  • クライアント: ループ 2 の通知を受け取りました。

実際に起こっていること:

  • サーバー: 私はループ 1 にいます。
  • サーバー: 私はループ 2 にいます。
  • クライアント: ループ 1 の通知を受け取りました。
  • クライアント: ループ 2 の通知を受け取りました。

Ruby ループ内からクライアントにデータを送信できません。つまり、最終的にはすべてのパケットを送信しますが、期待どおりにすべての反復中に送信するわけではありません。代わりに、サーバー ループが完了するまで待機し、複数の呼び出しを連続して送信します。

ここで何が間違っていますか?私が探しているものは可能ですか?このナットを割る方法についての考えは役に立ちます。

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

ruby-on-rails - em-websocket gem を使用しても接続を「ws://」RUBY に変更できない

私はRubyが初めてです。

WebSocket 接続を使用しようとしています。そこで、em-websocket gem を使用します。また、シン Web サーバーも使用します。私は例が私に言ったようにすべてをしました。だから私を助けてください。

しかし、サーバーは私を返し続けます:

クライアントのリクエスト:

クライアント側のコード:

サーバー側のコードは次のとおりです。