私は、ユーザーがブラウザを使って互いにチャットできる(Facebookのチャットを考える)ウェブサイトを運営しています。ライブインタラクションを処理する最善の方法は何ですか? (今私は、オンラインのユーザーと新しい着信メッセージを更新する30秒ごとに行くの投票があり、別の調査では、新しいメッセージを取得するために、毎秒のチャットページに行く。)私が考えられてきたチャットアプリのスケーリング - 短いポーリングとロングポーリング(AJAX、PHP)
もの:
-
を
- HTML5 Web Sockets:これはすべてのブラウザで機能しないため、使用しませんでした(クロムのみ)。
- Flash Sockets:最終的にモバイルWebをサポートしたいので、これを使用しませんでした。
現在のところ、AJAX long pollingのスケーラビリティがわからないため、私は短いポーリングを使用しています。私は現在servintからVPSサーバーを実行しています(Apacheを実行しています)。長いポーリングや短いポーリングを使用する必要がありますか?私は絶対的な即時の応答時間(ちょうど "チャットアプリのために十分"良い)を必要としません。これを頻繁に行うポーリングは、数十万人のユーザーがサーバーを停止させることで行われますか?これをどのようにスケールするのですか、助けてください!
私は、一般にApacheが多くの同時接続ではうまく処理できないことを知っています。また、このシナリオ用に構築された他のソリューション(nodejsなど)があるかもしれないことも認識しています。しかし今は、アプリケーション全体の書き換えを避けたいと思います。 –
異なるプラットフォームで複数のソリューションを実装するにはどうすればよいですか?つまり、HTML5がサポートされている場合、ブラウザはHTML5を使用します。フラッシュがサポートされている場合はブラウザがフラッシュを使用し、上記のいずれもサポートされていない場合はブラウザがajaxを使用します。 – binaryLV
この記事に興味があるかもしれませんhttp://urbanairship.com/blog/2010/09/29/linux-kernel-tuning-for-c500k/ –