18

私はソーシャルアプリケーションを構築していて、Facebookがどのように通知を達成するのか疑問に思っていました。ご存知のように、Facebookの通知は即座に行われます。誰かが行動を起こすとすぐに、人々に通知されます。

データベースで常にクエリが実行されているわけではないと思います。

誰かが私を正しい方向に向けることができますか?ありがとう

4

3 に答える 3

26

質問はC#、ASP.NETでタグ付けされているため、すばらしいSignalRライブラリを使用する必要があります。基本的SignalRに、クライアントにプッシュ通知を送信できます。それが使用する正確な基礎となる技術は、サーバーとクライアントの機能に影響されます。

上に構築されているjabbRと呼ばれる大きなリアルタイムチャットサイトがありSignalRます:

http://jabbr.net/

ここにあなたが始めるべきいくつかのより多くのリンクがあります。

于 2012-07-10T09:16:53.353 に答える
8

Facebookは、 Thriftと呼ばれる(設計した)メッセージングプロトコルを使用しています。これにより、非常に低い遅延でクライアントからサーバーへの通知が可能になります。サーバーの更新はユーザーの操作に応じてトリガーされ、ログインしている関連ユーザーには同じメカニズムで通知されると思います。

thrift(プロトコルバッファも参照)などのメッセージングプロトコルを使用すると、クライアントは更新のためにサーバーをポーリングする必要はありません。代わりに、サーバーはクライアントに通知をプッシュできます。これを行うには、サーバーは、一度にログインするユーザー(ログイン、ログアウトハンドシェイク)と、特定のクライアントアクションから通知を受信するユーザーを認識する必要があります。

特に8億人の潜在的なユーザーがログインしている場合は、言うのは簡単です。

于 2012-07-10T08:43:41.943 に答える
0

http://nodejs.org/をご覧になることをお勧めします。これはイベント駆動型モデルであり、「ソーシャルネットワーク」/即時通知シナリオに完全に理想的です。

参考までに:ソーシャルネットワークシナリオの各「person」オブジェクトには彼/彼女自身のユニークな属性-通常のSQLデータベースでは設計が難しい。

于 2012-07-10T10:32:43.967 に答える