Задать вопрос
@Artem0071
Безработный mr. Junior

Как уведомлять о новых записях в БД?

Есть сервер на пхп, клиент на vue, БД на мускуле.

Как сделать оповещения у клиента о новых событиях в БД? Как это сделано у того же самого контакта?

Долго наблюдал за таблицей network в хроме в режиме разработчика и заметил только что каждые 25 секунд отправляется запрос на сервер (в ВК).

Но при этом если кто то отправляет сообщение, то оно приходит моментально.. И еще одна деталь, если смотреть за консолью в том же самом ВК, то там есть запись starting server (сейчас посмотрел, уже вроде нет такого). Что это означает? Да и вряд ли ВК каждую секунду отправляет запрос на сервер. Это ж какие там вычислительные мощности должны стоять..

Но вернемся к главному, как сделать моментальное уведомление?

Ну прям очень интересно что это :)
ce8420e364ce485fb2939ecda7c00832.png
  • Вопрос задан
  • 652 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
dosya97
@dosya97
Fullstack web-developer
Вы все верное понимаете. Это называется webSocket-ами. Точно не знаю про пхп, но например, python - не асинхронный, и он из коробки не позволяет оповещать клиента. Для этого есть некие батарейки, такие как django-channels. Поищите для пхп, должно быть тоже. И да, вы ставите слушателей на клиенте(js), и на сервере, путем некоторых функции, делаете broadcast.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@vopross
Ну как вариант использовать Long Polling, в сети много материала по этой теме.
Ответ написан
@undefined_title
реализовать что то типо паттерна observer
Ответ написан
Комментировать
@vshvydky
Socket.io. а вот на счет стрима новых записей, есть только одна бд, которая это реализовала, зовется rethink
С реляционках надо триггер модуль для запуска внешнего события и чет еще
Ответ написан
Комментировать
dastiw1
@dastiw1
Frontend Developer
Посмотрите как реализованы события в Ларавел. Там процесс работает так:
Когда вы записываете через модель в базу србатывает событие "сохранено". А это как то связано с memcache. А memcache можно связать с websocket. И мгновенные уведомления работают
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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