Задать вопрос
mannaro
@mannaro
Умею профессионально гуглить

Что быстрее: websocket или «обычное» соединение?

Добрый день, товарищи!

Загружаем мы на сервер файлы посредством xhr. Сейчас мы просто читаем файл (будь то FileReader или FormData) и грузим на сервер через XMLHttpRequest.
Однако, весь сайт у нас построен на websocket. Может, было бы разумнее все слать через сокеты? Или будет слишком долго/подводные камни/и т.п?
  • Вопрос задан
  • 1046 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Думаю единственной проблемой будет работа с другими сообщениями протокола, пока вы передаете файл. Давно не работал с вебсокетами, но что-то мне подсказывает, что передача файла заблокирует другие сообщения по каналу. Если это для вас критично, у вас есть два способа решения проблемы:
1. Передавать файл частями.
2. Передавать файл по другому каналу. Таким каналом может быть отдельный сокет или, внимание, xhr

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

Помните что в http протоколе за вас уже позаботились о формате передачи файлов (вспоминаем про multipart/form-data, как об одном из решений), в сокетах вы будете создавать велосипед.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
"Обычное" соединение - это протокол HTTP, он тоже основан на TCP/IP, но для получения ответа от сервера, требуется сперва сделать HTTP-запрос, это нагрузка и на клиент, и на сервер, а WebSockets - это почти что "сырой" TCP/IP, соединение остается открытым, нет "запросов" и "ответов", обе стороны шлют пакеты, когда им "вздумается", поэтому WebSockets лучше подходит для push-уведомлений, например, мгновенных сообщений (чаты), в остальных же случаях не имеет никакого смысла.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы