2011-02-09 3 views
0

私は面白いことがあります:ファイルのダウンロードをマーシャリングする能力 - ギガバイトのデータ領域の多く。Silverlight大ファイルダウンローダー

私は、次のプラグインを使用して大量のデータ(ギグ)のアップロードを可能にするSilverlightのウェブサイトを持っている:しかし、私はまた、ユーザーがあまりにも同じデータをダウンロードできるようにすることができるようにしたいhttp://silverlightuploader.codeplex.com/

。しかし、同時ダウンロードの量を制限できるようにしたい。したがって、シルバーライトを介してクライアントへのデータストリームを直接制御するというアイデアは魅力的です。マシンに何かを直接インストールしたくないからです。

私の質問は:私が探しているデータの量は、WebClientクラスを使用することが適切であることです(私は読みたいHTTPストリームに何バイトを書き込むことができるので、徐々にダウンロードすることができます。何人かの人が現在ダウンロードしているかどうかをチェックし、ユーザー数が減少するまで待つようにするビジネスルールを入れてください)、あるいはソケットを使ってHTTPのオーバーヘッドを抑えることはできますか?

私はこれが正確に何かを発見していないプロジェクトがない限り!事前に

乾杯、

マット

答えて

0

限り、あなたは、いくつかの小さいサイズのチャンクでデータをダウンロードして、その後、全ファイルの実際の量は重要ではないであろうと、それは本当に何が問題ではありませんあなたはダウンロードを行うために使用します。たとえば、そのサイズのファイルの場合は、WebClientクラスを使用して、一度に1MBまたは2MBのチャックをディスク上の一時ストレージファイルにダウンロードします。どれくらいダウンロードしたのか、次のチャックを始める必要があるのか​​を把握しておく必要がありますが、問題はそれほど難しくありません。ソケットを使用することはできますが、最初にファイルにアクセスするには、Webサーバーと通信する必要があります。

クライアントが接続して次のチャンクをダウンロードすると、同時ユーザー数に関するビジネスロジックが強化されます。このすべてを行うために使用できるライブラリがあるかもしれませんが、それは複雑な問題ではありません。

関連する問題