質問があります。Facebook はおそらく ajax を使用してユーザーに新しいメッセージを通知しますが、これは正しいですか? もしそうなら、これはデータベースに信じられないほどのレベルに課税しませんか? 何百万人ものユーザーが毎秒オンラインでメッセージ ステータスを要求しています。それとも、これについて間違った方法で考えていますか?
1 に答える
pollingと呼ばれる手法について質問しています。そして、スケーラビリティの問題があることは正しいです。一般的には良い考えではありません。
[暴言] フェイスブックが何をしているのかさっぱりわからない。私はフェイスブックが嫌いです。それは、テキストメッセージやメールを止めない酔っぱらいの売春婦のようなものであり、使用する必要があります.[/暴言].
ポーリングに代わるより良い方法があります。1 つの手法はロング ポーリングと呼ばれ、次にサーバー サイド プッシュがあります。
基本的な「ロング ポーリング」を実装するにはどうすればよいですか? を参照 してください。 および https://stackoverflow.com/questions/6883540/http-server-to-client-push-technologies-standards-libraries。
ロング ポーリングでは、クライアントは要求を送信しますが、すぐに応答を期待しません。応答は、すぐに、1 秒または 1 時間で返される可能性があります。課題は、サーバーが未処理の要求をリソースを集中的に使用しない方法で管理することです。
サーバー側のプッシュでは、サーバーはクライアントとの接続を維持し、イベントが発生したときにその接続にメッセージをブロードキャストできます。
どの代替手段を使用するかは、テクノロジー スタックによって少し異なります。たとえば、node.js には socket.io と呼ばれるものがあります (これは、html5 websockets を使用したサーバー側のプッシュだと思います)。