@bituke

Как работают приложения реального времени?

Доброго времени суток! Я только что сейчас вроде написал приложение реального времени.
хочу только уточнить, правильно я его сделал или нет)
по сути я просто создал список, в который положил данные получаемые по апи с сервера, и вывожу эти данные на фронт
дальше просто включил setInterval на 5 секунд который снова получает данные и обновляет список в случае если есть какие-то изменения, после чего изменения реактивно применяются на фронте. Все верно, или это по другому работает?
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Инициатива не на той стороне:
не клиент должен запрашивать снова и снова «есть чё?»,
а сервер, когда что-то происходит-появляется, в этом же событии пусть толкает сообщение заинтересованным получателям.

Один из вариантов решения — упомянутые в других ответах веб-сокеты.

Приложения реального времени используют «событийную» архитектуру. В обе стороны.
На сервере: появилась новость – это событие, есть его обработчики (вызвалась функция), где это сообщение рассылают тем, кто сейчас на связи (установлено WebSocket соединение), и подписывался на события такого типа.
На клиенте: нажали вдруг кнопку лайк! – слушатель-обработчик этого события (функция) отправил сообщение на сервер, мол под таким-то постом юзер Ю поставил лайк.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ketovv
@ketovv
Питонист
Для каждой такой задачи есть своё решение.
Если у вас лента новостей, то подойдут и переодичные запросы к серверу (главное, чтобы они не были слишком частыми и не вызывали у серверной части приложения затруднения в ответе). Если же у вас чат, то решением станут вебсокеты, которые позволяют серверной части отправлять данные на клиентскую.
Ответ написан
Комментировать
@Q_BASIC
Программист
Либо вебсокеты, либо еще есть longpoll запросы. Но второй вариант только на случай если вебсокеты не работают у клиента
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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