私は現在、1000〜1500人のユーザーを対象としたチャットアプリケーションを作成しようとしています。現在起こっていることは、私のWebページがロードされると、データベースに新しいものがあるかどうかを確認するために毎秒ajaxリクエストを作成することです。これが標準的な方法なのか、挿入が発生したときにサーバーから通知を受けるためのより効率的な方法があるのかを知りたいです。
2 に答える
3
WebSocket を使用します。または、少なくとも AJAX ポーリング。1500 のクライアントから毎秒リクエストを発行すると、サーバーが停止する可能性が高くなります。
スタックに何か新しいものを導入することにオープンである場合は、 http://socket.io/を見てください。ただし、PHP に限定されている場合は、PHP Websocket ソリューションがあります。
于 2013-01-29T08:31:47.387 に答える
1
あなたのアプローチはPollingと呼ばれる標準的な方法です。クライアントの数に基づいて、これは最新のハードウェアを備えたサーバーでは完全に問題ないはずです(コードを介してステータスを示すHEAD
リクエストを行います)。AJAX
HTTP status
Jan が指摘したように、もう 1 つの選択肢はPushingと呼ばれます。
- 長所: サーバーへの要求が大幅に少なくなります。
- 短所: クライアントのブラウザによって提供される場合と提供されない場合があるテクノロジが必要です。
2 番目のアプローチを選択する場合は、Server-Sent Events (W3C ドラフト) を参照してください。
この仕様では、DOM イベントの形式でサーバーからプッシュ通知を受信するための HTTP 接続を開くための API を定義します。この API は、プッシュ SMS などの他のプッシュ通知スキームと連携するように拡張できるように設計されています。
于 2013-01-29T08:34:38.580 に答える