2012-04-05 11 views
1

私は現在のasp.netアプリケーションでAsyncHttpHandlersを使って彗星を実装しています。私の実装クライアントによると、最初にAsyncHttpHandler上の(ユーザーIDを持つ)サーバーへの通知フック要求を送信し、サーバー側では、ユーザーID(キー)とIAynsResult(値)のグローバル(アプリケーションレベル)辞書を維持します。したがって、ユーザーに通知を送信する要求が受信されると、グローバル辞書から一致するIAsyncResultを選択し、クライアントユーザーに応答を送信します。ASP.NET AsyncHttpHandlersを持つ彗星

私の懸念は、アプリケーションレベルのユーザーIDとIAsyncResultの辞書を設計していることですか?トラフィックが多いときにサーバーに負荷がかかると感じています。 私は彗星を達成する他の方法はありますか?高い交通シナリオのために彗星を達成するための良い設計は何でしょうか。

+0

あなたはPokeInライブラリを確認する必要があります。 – Zuuum

答えて

1

これは、サーバーへの要求の数によって異なりますが、IAsyncResult要求は、プロセスのThreadPoolを使用して自動的にワーカースレッドの数を管理します。これらのスレッドにはタスクが割り当てられ、スレッドは完了まで実行された後、ThreadPoolに戻されて再利用されます。

ThreadPoolは.NETの他の側面で使用され、のスレッド数が個に制限されています。それを多用すると、他の人が完了するのを待ってあなたの仕事がブロックされる可能性があります!

基本的に、ASP.net上でコメットサーバーを実行するには、強力なハードウェアまたは複数のサーバー上のアプリケーション配布が必要です。

私はHTMLにソケットを実装するためのW3C APIで、ASP.netサーバー上のセットアップが簡単である、HTML5 WebSocketをお勧めします:

SignalR for .net 4

ASP.net WebSocket API for .net 4.5

+0

HTML5ウェブソケットを使用してビデオチャットサーバーを作成することは可能ですか? – Sumit

+0

いいえ、そうではありません!ストリーミング部分は問題ありませんが、http://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/bec3ac48af5766b1?pli=1 –

+0

のように動画をレンダリングすることはできません返信いただきありがとうございます。私は、WebSocketを使用してストリーミングパートを実装したいだけです。 – Sumit

関連する問題