2016-09-04 4 views
0

Многой загрузкой учебника учит файл через socket.io непосредственно, но я обнаружил, что socket.io-поток может сделать то жезагрузить файл между Socket.io и Socket.io потоком

  1. что является преимуществом использования socket.io-stream для загрузки файла на сервер ?
  2. Если размер файла мал (~ 300kb), мне нужно, чтобы течь это?
  3. Будет потокового сохранить память сервера?
  4. Если я загружаю некоторые файлы (~ 8mb) через websocket с использованием кодировки base64, это будет плохо влиять на сервер ?

Большого спасибо

ответ

0

Есть целый ряд причин, чтобы использовать потоковый:

  1. Он содержит много расфасованной, уже апробированную функциональность, которая часто является наиболее простым и надежным способом реализовать некоторую функцию передачи данных.

  2. Streaming делает автоматическое управление потоком и буфер управления. Это позволяет управлять памятью управляемой величиной даже при потоковой передаче больших объектов.

  3. Streaming обеспечивает стандартный интерфейс, который позволяет легко подключить в другом коде (например, преобразование, другие носители информации, и т.д. ...).

  4. Там много обработки ошибок уже встроено.

ли или не использовать потоковый действительно каждый конкретный случай. Если вы знаете потоковое вещание, и вы просто пытаетесь отправить файл из точки A в точку B, я бы очень часто использовал потоковое вещание, если не было какой-то определенной причины (например, некоторая функция, которую вам сложнее реализовать с потоковой передачей).

Вы не показываете, как ваш непотоковые код работает, так что трудно для нас, чтобы сравнить вариант потокового непосредственно в код вы не показали, но вот догадка конкретных вопросов:

в чем преимущество использования socket.io-stream для загрузки файла на сервер?

См вышеуказанные пункты.

Если размер файла невелик (~ 300 КБ), мне нужно его передать?

«Необходимо потопить его», зависит от множества вещей. При 300 КБ и невозможности одновременного вылета тысяч из них в полете, вы, вероятно, «не нужны» для потока. Но я задал себе вопрос по-другому. Почему бы не потопить его? Если у вас есть готовый код, почему бы не использовать его?

Будет ли потоковое сохранение памяти сервера?

Это зависит от того, какую реализацию вы сравниваете, но поскольку потоковая передача имеет управление потоком и управляет буферизацией, она часто эффективна при использовании памяти.

Если я загружаю некоторые файлы (~ 8 МБ) через websocket с использованием кодировки base64, это будет плохо влиять на сервер?

Это зависит полностью от вашей реализации. Я бы не сказал, что webSocket особенно построен для оптимизации загрузки файлов. В большинстве случаев я бы, вероятно, использовал webSocket в качестве канала управления и делал большие загрузки файлов через HTTP-сервер, где uploads являются зрелой функцией. Во-первых, кодирование base64 не особенно эффективно для некоторых типов данных. Как http, так и webSocket поддерживают двоичные передачи, которые обычно более эффективны для файловых данных.

+0

спасибо за ваше объяснение! –

Смежные вопросы