私はソーシャルアプリケーションを構築していて、Facebookがどのように通知を達成するのか疑問に思っていました。ご存知のように、Facebookの通知は即座に行われます。誰かが行動を起こすとすぐに、人々に通知されます。
データベースで常にクエリが実行されているわけではないと思います。
誰かが私を正しい方向に向けることができますか?ありがとう
質問はC#、ASP.NETでタグ付けされているため、すばらしいSignalR
ライブラリを使用する必要があります。基本的SignalR
に、クライアントにプッシュ通知を送信できます。それが使用する正確な基礎となる技術は、サーバーとクライアントの機能に影響されます。
上に構築されているjabbRと呼ばれる大きなリアルタイムチャットサイトがありSignalR
ます:
ここにあなたが始めるべきいくつかのより多くのリンクがあります。
Facebookは、 Thriftと呼ばれる(設計した)メッセージングプロトコルを使用しています。これにより、非常に低い遅延でクライアントからサーバーへの通知が可能になります。サーバーの更新はユーザーの操作に応じてトリガーされ、ログインしている関連ユーザーには同じメカニズムで通知されると思います。
thrift(プロトコルバッファも参照)などのメッセージングプロトコルを使用すると、クライアントは更新のためにサーバーをポーリングする必要はありません。代わりに、サーバーはクライアントに通知をプッシュできます。これを行うには、サーバーは、一度にログインするユーザー(ログイン、ログアウトハンドシェイク)と、特定のクライアントアクションから通知を受信するユーザーを認識する必要があります。
特に8億人の潜在的なユーザーがログインしている場合は、言うのは簡単です。
http://nodejs.org/をご覧になることをお勧めします。これはイベント駆動型モデルであり、「ソーシャルネットワーク」/即時通知シナリオに完全に理想的です。
参考までに:ソーシャルネットワークシナリオの各「person」オブジェクトには彼/彼女自身のユニークな属性-通常のSQLデータベースでは設計が難しい。