Задать вопрос

Что лучше post/get+socket или чистый socket?

Доброго времени суток.
Пишу одностраничное приложение на nodejs с использованием socket.io. И вот возник вопрос - как лучше построить запросы к/от серверу/а. Первый вариант это клиент отправляет post/get запрос и получает на него ответ и если нужно к примеру уведомить других клиентов об изменениях то тогда используются сокеты. Второй вариант все запросы делать только с использованием сокетов. Какой подход лучше? Дадут ли чистые сокеты прирост скорости или нет разницы?
  • Вопрос задан
  • 1263 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 3
yarkov
@yarkov
Помог ответ? Отметь решением.
Если клиент отправляет post/get запросы часто (20 раз в секунду), то на сокетах.
Не изобретайте.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Дадут ли чистые сокеты прирост скорости или нет разницы?
Прирост скорости к чему?!
Вы понимаете, что каждый открытый сокет-коннект - требует дополнительных ресурсов на стороне сервера и кол-во одновременно открытых соединений ограничено?

если нужно к примеру уведомить других клиентов об изменениях то
то обычный GET-Ajax при активной вкладке - раз в 5 секунд.
Можно еще отслеживать скроллинг и движение мыши и выключать AJAX-пингер, если не было активности в течение 1-й минуты.

Правила просты:
1. Real-time сервис - используем сокет. (более 1 запроса в 5 секунд)
2. Диалоговый режим - GET/POST-Ajax (менее 1 запроса в 5 секунд)
+мониторинг событий (для разрыва коннекта/остановки GET-ping'a), сжатие данных и пакетная обработка.
Ответ написан
Комментировать
Rou1997
@Rou1997
Первый. WebSocket'ами следует заменить GET-запросы если они отправляются часто, клиенту не придется каждые n секунд опрашивать сервер, а серверу обрабатывать каждый запрос, что сэкономит процессорное время и там и там, если же у вас частые POST-запросы (то есть клиент отправляет данные серверу), то WebSockets почти ничего не даст, ну если у вас и так постоянно открыто WebSockets-подключение, то можете и POST через него отправлять, если хотите.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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