1

Windows フォームのシック クライアント アプリケーションからアクセスできるように設計された、.NET 3.5 の ServiceStack ライブラリを使用して API サーバーを開発しています (私にとっては新しい経験です)。ユーザーがボタンをクリックしてサーバーへの REST 要求が発生したときに、RPC 呼び出しの進行状況を示す進行状況バーを表示したいと考えています。

私のサービスは通常、次のいずれかのパターンに従います。

  • クライアントは ID のリストを送信し、ID ごとに 1 つのオブジェクトのリストを受信することを期待します。この場合、進捗率は次のように計算できます。(number of objects received so far) / (total number of objects requested)
  • クライアントはリクエストを送信し、不明な長さのリストを受け取ることを期待しています。サービス側では、(キャッシュ、データベース、計算などから) オブジェクトのリストを取得し、それをシリアル化し、シリアル化されたデータを HTTP 応答ストリームに書き込みます。この場合、進捗率は次のように見積もることができます。(number of bytes received so far) / (Content-Length of the HTTP response)

どちらの場合も、これらのリストは非常に長くなる可能性があるため、ネットワーク経由で送信されるのにかなりの時間がかかると予想されます。

ServiceStackの、、、または一般的なサブクラスを使用してこれを達成する方法はありJsonServiceClientますXmlServiceClientServiceClientBase? そうでない場合、余分な作業をせずに私が望むことを達成するための良い方法は何ですか? 独自の REST クライアント実装をゼロから作成できることは理解していますが、できればそれは避けたいと思います。

4

2 に答える 2

1

1 つのアプローチは、ServiceStack が提供する pub/sub を調べることです。最初のリクエストを送信して、相関識別子を返すことができます。次に、シック クライアントにイベントをサブスクライブさせます。イベントには、クライアントが進行状況を計算するためのデータが含まれる場合があります。

ServiceStack Redis Pub/Sub

于 2013-02-12T04:47:01.963 に答える