3

MVC WebApi サーバーからデータを取得する必要がある Windows RT アプリケーションを開発しています。問題は、応答に数秒から 3 分かかることです。

それを解決するための最良のアプローチはどれですか?

とりあえず、Web API に async を呼び出し、例外を回避するために長いタイムアウト値を設定します。それは良い方法ですか?サーバーには常に開いている接続があるため、あまり好きではありません。サーバーのパフォーマンスに大きな影響を与える可能性はありますか?

「コールバック」のようなものはありますが、Web サービス用ですか? サーバーがクライアントを呼び出してデータを送信することを意味します。

4

2 に答える 2

3

最後に、WebSockets を使用して解決しました (oleksii に感謝します)。接続を開いたままにしますが、結果を繰り返しポーリングすることは避けます。これで、サーバーがプロセスを終了すると、データがクライアントに直接送信されます。WebSockets は、TCP を介して中継するプロトコルであり、標準化されています。

http://en.wikipedia.org/wiki/WebSocket

于 2013-01-21T07:34:21.327 に答える
3

はい、WCF 二重通信など、サーバーからクライアントへのコールバックを取得する方法があります。ただし、このような手法では通常、接続を開いたままにします (ほとんどの場合、これは TCP セッションです)。ほとんどの Web サーバーは多数の同時要求をサポートしていないため、サーバーへの長時間の呼び出しごとに、同時に接続されているクライアントの数が増加します。これにより、本来あるべきではない時点でリソースの使用率が高くなります。クライアントが多数ある場合、そのようなアーキテクチャは必ず失敗します。

REST リクエストは、軽量、小型、高速でなければなりません。データベースを使用して一時的な結果とワーカー サーバーを格納し、負荷を処理することを検討してください。これはクライアント側ではなく、サーバー側の問題です。

于 2013-01-17T19:01:02.500 に答える