Задать вопрос
@likeapimp
web dev, web design

Как реализовать систему realtime уведомлений на сайте?

Здравствуйте!

Как лучше/правильнее реализовать систему уведомлений на сайте в реальном времени? То есть уведомления, например, во время получения сообщения и тд (по типу вк).

В таких случаях обычно держат постоянно 1 открытое сокет-соединение или как?
  • Вопрос задан
  • 2685 просмотров
Подписаться 7 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
ACCNCC
@ACCNCC
Делаю игры!
Ответ написан
Комментировать
@pin3
Я понимаю когда не найти ничего. Но блин, сложно зайти в яндекс? там уже есть и готовые реализации.
тык
Запрос
Лучше конечно поднять nodejs и websocket.
Ответ написан
Комментировать
@ashlanderr
Есть несколько подходов, от простого к сложному:

Long polling — клиент периодически спрашивает сервер «есть что-то новое?». Просто в реализации, но создаёт лишнюю нагрузку и задержку.

Server-Sent Events (SSE) — сервер держит одностороннее соединение и сам отправляет события клиенту. Хорошо подходит именно для уведомлений, работает поверх обычного HTTP без дополнительных библиотек.

WebSocket — двустороннее соединение, минимальная задержка. Стандарт для чатов и систем «как у ВКонтакте».

Для WebSocket можно поднять свой сервер — популярные варианты: Centrifugo, Laravel Reverb, Socket.IO. Но это инфраструктура, которую нужно разворачивать и поддерживать самостоятельно.

Если не хочется этим заниматься — есть готовые облачные сервисы. Западный стандарт — Pusher, но сейчас он недоступен из России.

Мы сделали российскую альтернативу — NotiBox: серверы в России, совместим с протоколом Pusher, поэтому существующий код на Laravel Echo, pusher-js и других совместимых библиотеках работает без изменений. Сейчас в бете, доступ бесплатный.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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