Простая реализация нотификаций из сервера в браузер?

Допустим, я делаю чат.

Нужно уведомлять клиентов о возникновении некоторых событий.
Основной сайт написан на PHP, и именно в этой части появляются события.

Самый простой способ, который я вижу, это:
1) На Node.js (socket.io) написать сервер (и поставить его бекендом за nginx), который будет связан с браузером с по WebSocket.
2) При появлении события в PHP-части проекта отправляем сообщение в rabbitmq.
3) При наличии сообщения в rabbitmq отправляем его Node.js демоном нужным клиентам в браузеры.
4) Мониторинг Node.js сервера возложить на supervisor.

Мне не нравится зоопарк технологий для данной задачи.
Как можно попроще?
  • Вопрос задан
  • 1183 просмотра
Решения вопроса 2
akubintsev
@akubintsev
backend разработчик
А что именно в наборе технологий смущает? Ну как вариант можно node.js заменить на Ratchet, -1 ЯП в списке будет.
Так по сути не убавить, не прибавить.
Ответ написан
MAKAPOH
@MAKAPOH
многостаночник
Однажды у меня была аналогичная задача, к PHP сайту написать чат. Использовал для это Ratchet.
Возможно rabitmq можно заменить на beanstalkd или gearman и тогда у вас остаётся всего два языка, PHP и C :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Romanche
@Romanche
Жизнь–игра. Задумано плохо, но графика потрясная!
проще - лонгполинг.
на клиенте с помощью аякса посылаете запрос на сервер. Ставите таймаут 1 минуту. На сервере делаете цикл, который возвращает значение, если есть изменения + sleep(1) в итерации. Ну настраиваете по времени - так как удобно. в случае изменений - отправляете данные - аякс принимает и уведомляет.
Ответ написан
STJ
@STJ
Front-end developer
Самый простой - сокет. Проще будет некуда.
Ответ написан
@Nodlik
Для меня проще всего было использовать server sent events
Для веб сокетов, в принципе, не обязательно node js, php скрипт тоже можно заставить быть демоном.

А общение между демоном и сайтом проще, да, через rabbitmq.
Ответ написан
@theaidem
Как я понимаю именно ноду в зоопарк не хотите ставить, тогда возмите Go, просто, красиво, минимум зависимостей, проще маштабировать будет
Ответ написан
@Levhav
Контакты: скайп Levhav, почта Levhav@ya.ru
Можно попробовать Star.Comet это просто так как с вашей стороны будет только php и js а всё остальное уже готово и работает в saas режиме.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы