次のシナリオ:ユーザーへの新しいメールメッセージが格納されているデータベーステーブルがあります。ユーザーがクライアントアプリケーションを実行している場合、このユーザーのエントリがデータベーステーブルに挿入されたときに、新しいメールが到着したことを示すアイコンをアプリに表示する必要があります。
約100人のユーザーが同時にログインします。
私が見る限り、2つの解決策:
- 中央サーバーにサービスを実装します。そのサーバーはデータベースを定期的にポーリングします。また、クライアントは、起動時にサーバーに登録する必要があります。これにより、ユーザーへの新しいメッセージが到着したときにコールバックできるようになります。良い例:データベースのポーリングが少ない。悪い例:中央要素のコーディングが増えています。
- すべてのクライアントは、独自にデータベースをポーリングします。ポーリングは1分に1回程度行う必要があるため、100人のクライアントが毎分データベースをポーリングしています。悪いアイデア?それともまだ大丈夫ですか?
それで、あなたはどちらのオプションを選びますか?
クライアントには.NET4.0を使用し、データベースにはMS SQLServer2008を使用しています。
また、ソリューション1に投票する場合:WCFサービスは良い考えですか?私のシナリオに関するリンクやアイデアをいただければ幸いです。
皆さんありがとう!