Режим реального времени — это модное слово, которое мы время от времени слышим, когда данные обновляются сразу же после обновления данных. Эта статья поможет запустить ваше приложение для синхронизации данных в реальном времени. Прежде чем углубиться в детали, давайте рассмотрим несколько примеров, где он широко используется.
- Приложение Stock — обновление цен в соответствии с текущими рыночными тенденциями.
- Раздел новостей — Обновление текущих событий дня.
- Приложение чата — обновление взаимных конверсий в чате.
- Живая панель инструментов, питаемая потоковым API Твиттера.
- Монитор статистики сервера, такой как время безотказной работы, работоспособность и запущенные процессы.
Все приведенные выше примеры требуют обмена данными между устройствами, как только произойдет событие. Эта синхронизация данных с сервера на клиент может быть выполнена двумя способами:
1. Извлечение клиентом: это процесс извлечения обновленных данных с сервера с помощью методов HTTP через равные промежутки времени. Кроме того, его можно разделить на короткий опрос и длительный опрос. Короткий опрос — это таймер на основе AJAX, который вызывается с фиксированной задержкой, тогда как длинный опрос основан на комете (т. е. сервер будет отправлять данные клиенту, когда событие сервера происходит без задержки).
С помощью этого метода вы можете получать последние данные, которые почти в режиме реального времени из-за времени задержки между запросами. С помощью этого метода интерфейс не знает, когда данные обновляются, поэтому данные обновляются при следующем запросе до тех пор, пока не будут отображаться старые данные. Кроме того, этот метод сопряжен с увеличением нагрузки на сервер и пропускной способностью клиента, поскольку его часто вызывают для синхронизации с оперативными данными. Следовательно, мы можем сказать, что этот метод не эффективен в качестве push-уведомления сервера, когда данные обновляются всякий раз, когда в них происходят изменения.
2. Пуш-сервер: также называется моделью публикации/подписки, когда сервер публикует событие, а клиенты подписываются на события, чтобы получать обновления через соединения через веб-сокеты. Это долгоживущие соединения, которые создаются между клиентом и сервером и действуют как среда для обмена данными всякий раз, когда на сервере инициируется изменение.
В следующей статье вы можете найти подробную реализацию концепции server push с помощью socket.io.
Использованная литература:
- Статья Натана Пека
- «Опрос против SSE против WebSocket» от codeburst