5

ユーザーがある種の戦いに参加できるAndroidアプリケーションを開発しています。サーバー側では、バトルを開始するためにユーザーからリクエストを受け取り、アルゴリズムを使用して、彼に最も適した対戦相手を選択する必要があります。戦闘中、対戦相手の行動について競合他社に通知を送信する必要もあります。

したがって、サーバーにロングポーリングを実装する必要があるようです。私の質問は次のとおりです。

  1. サーバー側。asp.net mvc サーバーを使用しています。私はSignalRフレームワークを見てきましたが、それはまさに私が必要としているもののようです. しかし、私はロング ポーリングに慣れていないという理由だけで、その内部の動作原理を理解していません。したがって、このフレームワークの使用方法、または他の方法でロング ポーリングを実装する方法についての説明が必要です。

  2. クライアント側。私が理解している限りでは、ロング ポーリング リクエスト モデルは標準の「リクエスト/レスポンス」モデルとは少し異なるため、クライアント側でこれらのリクエストをどのように実装するかについても疑問に思っています。

私が説明した主題についての説明を楽しみにしています。

4

2 に答える 2

5

これはあなたが探している答えではないかもしれませんが、なぜ長いポーリングに行きたいのですか? ユーザーが戦闘に参加しているときにのみポーリングする場合は"pull"このタイプの通知に対してポーリングを行うことができます。これにより、バッテリーの寿命も節約されます。戦闘が開始したら、サーバーをポーリングするバックグラウンド サービスを開始します(2 ~ 3 秒の遅延が許容されることを願っています)。そして、それに応じてユーザーに通知します。その後、戦闘が終了したらサービスを停止します。 これにより、実装がはるかに簡単になります。 ただし、即時の通知が必要な場合は、Google Cloud Messaging Serviceを使用できます(これはロング ポーリングの一種です)。仕組みの詳細については、こちらを参照してください
2-3 seconds

于 2012-11-02T04:09:06.053 に答える
2

あなたがWCFを検討したかどうかはわかりません。

これを見て、役立つかどうかを確認してください。 http://anthymecaillard.wordpress.com/2012/06/06/wcf-real-time-web-development-with-long-polling/

クライアントの場合: Jquery を使用し、サーバーから応答が返されるまでプログレス ホイールを表示します。

于 2012-10-26T12:12:12.447 に答える