我有一个有趣的功能:编组文件下载的能力-许多文件都在千兆字节的数据区域中。
我有一个silverlight网站,允许使用以下插件上传大量数据(Gigs):http://silverlightuploader.codeplex.com/
然而,我也希望能够允许用户下载相同的数据。但我希望能够限制并发下载量。因此,通过silverlight直接控制到客户端的数据流的想法是引人注目的-因为我不想直接在机器上安装任何东西。
我的问题是:对于我正在检索的数据量,是否适合使用WebClient类(我可以指定要读取的HTTP流中有多少字节,这样我就可以增量地下载它,并在它周围放置一些业务规则来检查当前有多少人正在下载,并让它等待到用户数下降...),或者我可以使用套接字来降低http的开销吗?
除非有一个我还没有找到的项目可以做到这一点!
提前干杯,
哑光
发布于 2011-02-10 00:47:36
只要你下载较小大小的数据块,那么整个文件的实际大小就无关紧要了,使用什么进行下载也无关紧要。例如,对于这种大小的文件,我只需要使用WebClient类,一次下载大约1或2Mb的块到磁盘上的临时存储文件中。你必须跟踪你已经下载了多少,以及你需要从哪里开始下一个chuck,但这并不是一个太难的问题。您可以使用套接字,但是您必须自己与web服务器通信,才能在第一时间访问该文件。
当客户端连接到下载下一个块时,您将强制执行与并发用户数有关的业务逻辑。也许有一个库可以用来做这一切,但老实说,这并不是一个复杂的问题。
https://stackoverflow.com/questions/4947648
复制相似问题