友人と私は、WebベースのAJAXチャットソフトウェアをjQueryとPHPコアで構築しています。これまでは、2秒ごとにサーバを呼び出すか、アップデートを探している標準的な手順を使用してきました。しかし、私は高速ではないので、このメソッドを嫌うようになったし、データが返されなくても、サーバーからの往復の要求がたくさんあるという点で "費用対効果"もありません。Ajaxロングポーリングの制限
私たちのプロジェクト支持者の一人は、COMETと呼ばれる手法、具体的にはロングポーリングを検討することを推奨しました。しかし、それについて別の記事やブログ記事で読んだところ、Apacheサーバーで使用すると実用的ではないことがわかりました。大抵の人は「良いアイデアではない」と言っているようですが、Apacheが一度に処理できるリクエストの数にはあまり意味を与えていません。
PureChatの全目的は、偉大に見え、高速になり、ほとんどのサーバーで動作するチャットを人々に提供することです。そのため、ユーザーの約96%がLighttpdやNginxではなく、長いポーリングに適していると思われます。
ポイントへの行き方:あなたの意見では
を、それがのsetIntervalを引き続き使用して繰り返し、新しいデータを要求するために良いですか?または、ほとんどのユーザーがApacheを使用するという事実にもかかわらず、ロングポーリングの方が良いでしょうか?また、Apacheサーバーがロールオーバーして死ぬ前に、チャットを使用できる人の数について、より具体的な説明を得ることは可能ですか?
Tomcat 7にはWebSocketのサポートが追加されているので、ポーリングフォールバックを使用することもできます。 – Andrew
これが小規模なものであれば、それは問題ではありません。 1000人の同時ユーザーを計画している場合は、各接続ごとに新しいスレッドが開かれるため、Apacheは死ぬでしょう。 NginXは単一のスレッド上で動作するので、多くの接続に拡張できます。しかし、PHPを使用している場合、これは多くの場合、あなたの思うようにあなたを助けません。詳細については私の下の答えを参照してください。 – dqhendricks