2011-07-10 9 views
0

私はAndroid用プッシュ通知システムを構築しています。プッシュ通知:ASP.NETは無限ループでイベントが発生するのを待ちます

私は商用ホスティングプロバイダでホストされているASP.NET Webアプリケーションを持っています。私はほとんど常にイベントが発生するのを待っている無限ループにある1ページを持っています。

1つのホスト(Androidデバイス)がこのページを読み込み、そのイベントが発生するまで、永続的な接続で接続されたままです。それが起こると、それを提供し、それが再び起こるのを待つために戻る。

私の質問は、このページは永続的なループであり、常にクライアントに接続して残りのWebアプリケーションのパフォーマンスに影響を与えるかどうかです。

(サーバはとにかくクライアント接続の負荷を扱うので、私は、それはいけないと思います。私はこれを仮定して修正するだろうか?)

は、私は、サーバー上の別のアプリケーションプールでこれを導入すべきか? また、永続的な接続を使用してプッシュ通知を行うより良い方法がありますか?

ありがとうございます...

+0

いくつかのコードを表示できますか? – mibollma

答えて

2

あなたの説明に基づいて、問題に取り掛かります。まず、永遠にループするページがあると、タイムアウトエラーが発生します(接続タイムアウトのデフォルトは120秒です)。ちなみに、どのくらい速く起こったのか(私は間違ってこのことをやったことがありますが、それは良いことではないと信じています)に基づいて、アプリケーションプールが失敗/停止する原因になります。

リアルタイム通知が100%である必要がない場合は、ポーリング設定を使用します(数分おきに1回ページを表示させる)。 100%のリアルタイム通知が必要で、2.2を目標にしている場合は、Cloud to Device Messagingを使用してください。それ以外の場合は、サーバーアプリケーションを作成し、ASP.Netのアプローチにはならないことをお勧めします。

+0

ああ、電話の接続は一定ではないので、あなたは最初のアプローチにもそれに関する問題にぶつかります。ありがとうございます。 – JaCraig

+0

私はそれを調べるでしょう。アプローチについては、私はタイムアウトを押すと再接続し、私のために保存されたメッセージは私を待っています。タイムアウトと再接続があっても、少なくともポーリングと同じくらい良いとは思いませんか? –

+1

私ははいと言うでしょうが、アプリケーションプールはシャットダウンするつもりです。いくつかのエラーが発生した後(それらが速く連続していると仮定して)、それはシャットダウンします。ホストプロバイダによっては、自動的に再起動することもできますが、引き続き問題になります。問題は、生産に入るまで問題に取り組まないことです。 – JaCraig

関連する問題