1

Web ベースのチャットの開発には、どの ruby​​ 同時実行ライブラリ/フレームワークを使用すればよいですか?

Eventmachine と Celluloid libraries、および Sinatra::Synchrony、Cramp、Goliath、Gserver concurrency-ready-serversについて読みました。私がこれを正しく理解している場合、これらすべてのライブラリまたはサーバーは、2 つの主要な異なるアプローチを使用して同時実行を実装します: リアクター パターン (ほとんどすべて)、またはマルチスレッドの使用 (つまり、gserver など)。

これがすべて正しければ、そうであることを願っています。

  • そうでない場合は修正してください...
  • 私が見逃した他の積極的に開発されたライブラリまたはフレームワークを指摘してください。

私がこれを尋ねている理由は、学習目的で、サーバー側で Ruby を使用して Web ベースのチャットを構築しようとしているからです。Jqueryなどを使用して、Webソケットまたはサーバーサイドイベントを使用してクライアントと対話します。

また、Xmpp サーバーや pub/sub メッセージング システム (Faye など) で ruby​​ を使用することについても読んだことがあります。これらのいずれかを皿に入れると、完全な「ノンブロッキング」ルビーチャットサーバー?

私はこれが少し複雑であることを知っていますが、それでも意味があることを願っています..しかし、何かについて完全に間違った方向に進んでいる場合、誰かが私がよりよく理解する必要があることについて、少なくとも一般的で漠然とした考えを教えてくれませんか?

ありがとう!

4

1 に答える 1

1

あなたが尋ねるべき面白い。Ruby Weekly の Peter Cooper は (Issue 116 - 2012 年 10 月 25 日)、「Ruby 開発者は EventMachine の使用をやめる必要があります。それは間違った方向です」という副題の講演に言及し、多くのフレームワークがHN上に構築されているため、HN に関する興味深い議論を引き起こしました。 (ゴライアス、クランプなど)

幻滅した人々は、Celluloid (Sidekiq が最も有名なクライアント)、Node.js プラットフォーム、または最初から確実な同時実行プリミティブを提供する他の言語のいずれかに群がります。はい、Go、Erlang、Clojure...

個人的には、Cramp、Redis Pub/Sub、および Websockets を使用して、少し前にリアルタイムの Web ベースのチャットを実装しました。これは、次のデモ コードから大まかに適用されています。宣伝どおりに機能しましたが、取得するトラフィックは、他の場所の一部の大容量システムの要件と比較できません.

于 2012-10-28T05:01:05.777 に答える