@AlexWeb6667
Web-дизайнер с опытом FullStack разработки

Как лучше реализовать онлайн оповещения?

Всем привет, пишу сайт на yii2, с личным кабинетом, как лучше реализовать оповещение об сообщении, или комменту к товару, или админу о новом пользователе онлайн, без перезагрузки странички? По гуглив нашел пару вариантов:

1.Ajax, каждую допустим минуту лупить ajax запросами на кол-во элементов с статусом не прочитанно или что-то вроде того.

Очень не очень как по мне, много лишних запросов и нагрузки на сервак, а если допустим будет пользователей 100 на сайте, это каждому Ajax отчет, напряжно...

2.Cron, не работал с ним еще, но как понял можно точно так же поставить выполнения какого-то скрипта, но в фоновом режиме, меньше напряга?

3. Web socket, тоже вообще не знаком, понял что на них чаты пишут, но и мою задачу могут решить, правда еще не знаю как(

Никто не подскажет как бы это лучше реализовать, если в базу поступила новая инфа в определенную таблицу, то выполниться скрипт, тот же Ajax например) И вообще совместимо это с yii2 и php?
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Вариант с ajax не советую
Cron - вариант
Web socket - хороший вариант, но придется с ним разобраться.

Проще всего сделать логику, которая будет решать есть уведомления или нет и повесить ее в конфиге на событие beforeRequest. тогда при каждом запросе будет выполняться эта логика. Допустим создать таблицу id|user_id|message|date_create|date_not_actual и писать в нее события. Зарегился пользователь записали и т.д. А в Вашей логике читать эту базу и выводить оповещения. Можно закешировать, сделав зависимость от count сообщений для пользователя. Пример таблицы абстрактный, тут смотря какие уведомления и о чем хранить.
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
Если вам нужна тесная интеграция с базой данных, тогда нужно делать UDF с вызовом внешней программы, которая будет отправлять Push-уведомления.
Ответ написан
Комментировать
rexido
@rexido
Очень плохой человек )
Сообщения в телеграмм )
Ответ написан
Ваш ответ на вопрос

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

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