Загрузчик больших файлов Silverlight - PullRequest
0 голосов
/ 09 февраля 2011

У меня есть интересное: возможность упорядочить загрузку файлов - многие в гигабайте данных.

У меня есть веб-сайт Silverlight, который позволяет загружать большие объемы данных (гига) с помощью следующего плагина: http://silverlightuploader.codeplex.com/

Однако я также хочу, чтобы пользователи также могли загружать одни и те же данные. Но я хочу иметь возможность ограничить количество одновременных загрузок. Таким образом, идея прямого управления потоком данных для клиента через silverlight является неотразимой - поскольку я не хочу напрямую устанавливать что-либо на машину.

У меня такой вопрос: для объема данных, который я смотрю на получение, уместно ли использовать класс WebClient (я могу указать, сколько байтов в поток http я хочу прочитать, чтобы я мог загружать его постепенно и помещать некоторые бизнес-правила проверяют, сколько людей загружают в данный момент, и заставляют его ждать, пока количество пользователей не уменьшится ...), или я могу использовать сокеты, чтобы уменьшить издержки HTTP?

Если нет проекта, который я не нашел, который делает именно это!

Приветствия заранее,

Мэтт

1 Ответ

0 голосов
/ 09 февраля 2011

Пока вы загружаете данные порциями небольшого размера, фактический объем всего файла не будет иметь значения, и на самом деле не будет иметь значения, что вы используете для загрузки. Например, для файла такого размера я бы просто использовал класс WebClient и загружал фрагменты размером, возможно, 1 или 2 Мб за раз во временное хранилище на диске. Вам нужно будет следить за тем, сколько вы скачали и с чего нужно начинать следующий патрон, но это не слишком сложная проблема. Вы можете использовать сокеты, но затем вам придется самостоятельно связаться с веб-сервером, чтобы получить доступ к файлу.

Когда клиент подключается для загрузки следующей порции, именно здесь вы должны применять свою бизнес-логику, касающуюся количества одновременно работающих пользователей. Возможно, есть библиотека, которую вы можете использовать для всего этого, но, честно говоря, это не сложная проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...