問題タブ [eventmachine]

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

ruby - EventMachine ハンドラからファイルをストリーミングしていますか?

ストリーミング イベント マシン サーバーを作成しています。IO のブロックを回避することや、イベント ループを台無しにするために何か他のことを行うことを懸念しています。

私が読んだところによると、Ruby のノンブロッキング IO を使用してファイルをノンブロッキングでストリーミングするか、next_tick を呼び出すことができますが、これらのアプローチのどちらが望ましいかは少しわかりません。

問題の一部は、Ruby のノンブロッキング IO ライブラリ関数の適切な説明を見つけられなかったことです。

短いバージョン: 長時間のネットワーク IO 操作、ファイルごとの数時間のストリーミング、転送を想定すると、イベント ループを台無しにすることなく eventmachine でこれを行う最善の方法は何ですか?

上記のコードがブロックされることは理解していますが、その場所に何を配置すればよいか迷っています。また、eventmachine の一部である FileStreamer クラスをそのまま使用することはできません。読み取り後、送信前にデータを操作する必要があるためです。

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

ruby - Rubyとeventmachineでログを記録する方法は?

RubyとEventmachineライブラリを使用してアプリケーションを作成しています。ノンブロッキングI/Oとイベント駆動型システムのアイデアが本当に好きです。私が直面している問題は、ロギングです。Rubyの標準ロガーライブラリを使用しています。ロギングに永遠にかかるわけではありませんが、ブロックすべきではないもののように見えます。Rubyの標準ロガー実装を非ブロッキングに拡張するライブラリがどこかにありますか、それともロギング呼び出しのためにEM :: deferを呼び出す必要がありますか?イベントマシンにこれを実行させる方法はありますか?

0 投票する
3 に答える
5328 参照

ruby-on-rails - RailsコンソールにRubyEventMachineをロードできません-ロードするそのようなファイルはありません

単純なテストプログラムでEventMachineを要求することはできません。Ruby 1.9.2(x86_64-darwin10.4.0)とRails3.0.1を実行しています。EventMachineは(経由でgem install eventmachine)インストールされ、gemはそれを認識しています:

それでも、(を介して)Railsコンソールを起動し、rails console単にeventmachineが必要になると、次のようになります。

EventMachineを必要とするクラスでメソッドを実行しようとしても同じ結果が得られます。EventMachineはエラーなしでビルドされました。EventMachineとRuby、およびすべてのgemを何度もアンインストールしましたが、これを機能させることができません。誰かが私を正しい方向に向けることができますか?

-ラス

0 投票する
3 に答える
6607 参照

ruby-on-rails - Rack と Event Machine を使用して WebSocket を Rails に統合する

WebSocket 実装と統合したいRails 3 の非同期バージョンを作成しました。

私は EventMachine、Ruby 1.9、Fibers、および非常に優れたIlya Grigorikによって文書化されているさまざまな em フレーバー ライブラリを使用しています。

WebSocket 接続のハンドラーとしてem-websocketを見てきましたが、これを Rails アプリにフックするための最良の方法がわかりません。

理想的には、これは Express および Socket.io を使用した node.js と同様の方法で機能します。着信接続を検出し、HTTP ヘッダー & などで示されるように、WebSocket ハンドラーまたは通常のレール スタックにディスパッチする必要があります

TL;DR

  • 既存の Rails アプリケーションにプラグインする WebSocket ハンドラー
  • 着信 WebSocket リクエストをアプリ内のエンドポイントに透過的にディスパッチする
0 投票する
1 に答える
966 参照

ruby - 転送要求 UDPSocket

ポート(53)でリッスンし、データを受信して​​から別の場所(Google DNSサーバー-8.8.8.8)に送信する基本的なrubyプログラムがあります。応答が元の宛先に戻らないか、正しく転送されていません。

これがコードです。NB 私は EventMachine を使用しています

デバッグする理由やヒントについての考えは、非常に高く評価されます。

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

ruby - Ruby 24/7 動作 XMPP ボット

誰かがこれで私を助けてくれますか? ある言語で単語を受け取り、データベースを調べ、翻訳を取得して送り返すボットを作成したいと思います。共有ホスティングでは不可能ですが、独自のサーバーまたは VDS では可能です。EventMachine や xmpp4r などのライブラリを使用してボットを作成する必要がありますか? はいの場合、一度に多くのリクエストを処理する方法は?

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

ruby - eventmachine でシンとレインボーを使用した非同期シナトラ。なぜ細い方が速いのですか?

eventmachine を使用して、シンとレインボウの間で非同期シナトラ ベンチマークを開始しました。

eventmachine と 4 つの work_processes を使用する場合、Thin が Rainbows よりも高速である理由を誰か説明できますか? 1つのwork_processesでも試してみましたが、結果は変わりませんでした。Thin はさらに高速です。

事前にありがとうフランチェスコ

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

ruby - イベントマシンサーバーにデータを書き込むだけの方法はありますか?

データを書き込むだけで、データを受け取らないサーバーを実装する必要があります。私が見つけたすべてのeventmachineサーバーの例では、常にサーバーが最初にデータを受信し、次にデータで応答します。クライアントが接続した後、クライアントへのデータの書き込みを開始するために必要です。

post_initにループを入れてみましたが、うまくいかないようです...クライアントは接続し、サーバーは書き込みますが、クライアントは何も受信しないようです。提案?

テストサーバー:

テストクライアント:

ありがとう...

0 投票する
4 に答える
2407 参照

ruby - Ruby/EventMachine スクリプトをシステム サービスとして実行する

EventMachine を使用して Ruby で単純な UDP サーバーを作成しました。Linuxボックスで常に実行したいと思います。システムサービスとして、または起動時に起動し、実行を維持し、監視できる他の形式でラップする方法に関する提案はありますか?

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

ruby - Ruby 1.8でEventMachineを使用して複数の並列httpリクエストを開始することは可能ですか?

em-synchrony.rb はこの機能をファイバーで実装していますが、私は 1.8 MRI を使用する非ファイバー バージョンを使用します。