質問

AJAXを使用して、レールにスケーラブルなチャットルームを実装したいと思います。調査から、サーバー側のプッシュでのみスケーラビリティが発生することがわかっています。

私の2つの質問は次のとおりです。

1)合理的に効率的なチャットサーバーでは、どの時点でポーリングが禁止されますか? 2)Juggernautを使いたくありません。私は彗星がどのように機能するかについてあまり知りません。 Javascript(クライアント側のサーバー/ポーラーを作成する)と別の言語(ファイアウォールの背後にあるクライアントに効率的なポーリングを提供し、CGIに統合する)を使用してビルドするのがひどく難しいのではないかと思います。 および3)(はい、2つのうち)、それを正しい方法で進めているかどうか

私が期待できる最も簡単な答えは、定量化された「はい、クライアントに5行のJavascriptを入れ、CGIスクリプトに20行のルビーを入れて、それを1日と呼ぶことです」です。

役に立ちましたか?

解決

もしそれが簡単だったら、人々はそれらの技術を構築しなかっただろう。私見私は、ポーリングは常にそれを行うためのハックな方法になると思います。言った...

Juggernautがカードから外れている理由がわからない素晴らしい作品です。

WeeWar などの他のサイトはポーリングメソッドを使用していることを知っています。そのため、スケーリングが問題になるまでに時間がかかると思います。

幸運

乾杯

他のヒント

今も同じことをしようとしています。 Juggernautはうまく機能しますが、Rails 3には適していません。それが要件でない場合は、チャットを作成するのは非常に簡単なので、使用することをお勧めします。 私のプロジェクトはRails 3を使用し、3秒ごとにサーバーをポーリングします(Campfireも3を行います)。 Rails Metalを使用して、ポーリングを超高速にしています。 Juggernautを使用する場合は、2行のクライアントサイドjsと1または2のサーバーサイドを使用します。そうでなければ、仕事に取り掛かってください!

はい、5行のJavascriptをクライアントに、20行のルビーをCGIスクリプトに入れて、1日で呼び出します

COMETは、Javascriptでサーバーへの接続を開いたままにすることで機能します(COMET Webサイトでこの非同期データを取得する方法の例はたくさんあります)。サーバーは基本的にデータを書き込み、フラッシュします。これは、タイトなループでMutexを使用して実行できます。また、おそらく並べ替えのメッセージキューが必要になります。

長い間、 BOSH について学ぶ方が良いかもしれません。走る。それはCOMETからの自然な進行です。

Juggernautには学習曲線がありますが(実際にはそうではないかもしれませんが)、COMETの実行方法を学ぶことはより急勾配です。非同期プッシュだけでも難しくなります。それだけでなく、それをうまくスケールさせる方法を検討する必要があります。 Juggernautを使用したことはありませんが、RORプラグインに関する限り、それは些細なことだと思います。そして、彼らがそれをより良くする方法を見つければ、あなたは無料でより速いパフォーマンスを得ることができます。

ポーリングは技術的にはより簡単に機能する別のオプションですが、サーバーを殺す可能性があるため、ポーリングを使用しないことに情熱を注いでいます。ポーリングは怠zyなルートです。

Campfireはどうですか? 5秒ごとにサーバーをポーリングします。夢のように機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top