2012-10-26 6 views
5

私はユーザーが何らかの戦いで競争できるアンドロイドアプリケーションを開発しています。サーバー側では、ユーザーからバトルを開始するためのリクエストを受け取る必要があります。アルゴリズムを使用して、最も望ましい相手を選択します。戦闘中には、相手の行動について競技者に通知する必要があります。長いポーリングを理解する:クライアント(アンドロイド)とサーバー(asp net)

私はサーバー上で長いポーリングを実装する必要があるようです。私の質問は以下のとおりです。

  1. サーバー側。私はasp.net mvcサーバーを使用しています。私はSignalRのフレームワークを見て、それは私が必要とするものであるようです。しかし、ちょうど私が長いポーリングに慣れているからといって、私はその仕事の内部原則を理解していません。ですから、このフレームワークの使い方や長いポーリングを実装する方法についての説明が必要です。

  2. クライアント側。私が理解している限り、長いポーリングリクエストモデルは、標準的な「リクエストレスポンス」モデルとは少し異なります。したがって、クライアント側でこれらのリクエストを実装する方法も不思議です。

私が記述した主題に関する説明をお待ちしています。

+0

チェックアウトを参照してください。http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongrunningConnectionsWithSignalR.aspx をそれはあなたの基本的な作業やデモを示しています。私はまた、あなたの目的にはSignalRが素晴らしいと信じていますし、使用するのは難しくありません! – Sindre

答えて

4

からになるまで進捗ホイール示すとこれはあなたが探している答えではないかもしれませんが、なぜあなたが長いポーリングのために行きたいです。このタイプの通知では、"pull"種類のポーリングを実行できます。IFユーザーは、ユーザーが戦闘に参加しているときにのみポーリングします。
この方法でバッテリーの寿命も節約されます。 戦闘開始時に、2-3 secondsごとにサーバーをポーリングするバックグラウンドサービスを開始します(待ち時間は2〜3秒で可能です)。それに応じてユーザーに通知します。その後、戦闘が終わったときにサービスを停止します。
これははるかに実装しやすくなります。
瞬間的な通知が必要な場合は、Google Cloud Messaging Service(長いポーリングの形式)を使用できます。それがどのように動作するかについての詳細を知るためには、this

関連する問題