Существуют готовые библиотеки Javascript для клиентской стороны, включая эту: WebSocketFileTransfer.
Что касается решений на стороне сервера, я меньше в курсе. Я бы, вероятно, выбрал два соединения через веб-сокет или разделил файл на более мелкие сообщения веб-сокета с использованием javascript HTML5 - это позволило бы псевдомультиплексировать благодаря тому факту, что можно отправлять разные сообщения веб-сокета между фрагментами файла.
Я предпочитаю Ruby и, вероятно, напишу свое приложение (или, по крайней мере, серверную часть веб-сокета), используя Plezi framework. ... но я не уверен, что упомянутая вами проблема с пространством имен по-прежнему будет беспокоить вас, если вы решите псевдомультиплексировать, разделив файл на куски.
ИЗМЕНИТЬ
Я просто подумал, что, если вы не разделите отправленный файл на более мелкие фрагменты, которые позже будут собраны, будет очень сложно дать отзыв о процессе загрузки ...
Ваш веб-сервер (если вы не пишете свой собственный) не будет сообщать вам о входящих данных до тех пор, пока передача файла не будет завершена, поэтому вы не можете обновить клиент о том, сколько было получено. Кроме того, разделение файла может позволить вам повторно инициировать загрузку, если соединение прервано.
Думая об этом, я бы выбрал одно соединение и разделил каждый файл на несколько фрагментов (возможно, фрагмент на каждые 100 КБ или около того, в зависимости от вашего сервера и предполагаемого использования).
person
Myst
schedule
21.07.2015