Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет!
Попробовал состряпать сайт-чат на ларавеле. Появились вопросы:
Я использовал связку ларавель, редис, ларавель эхо(нода) и серверная библиотека эхо. В результате у меня получилось сделать приложение которое коннектится к сокет серверу (Нода), затем отправляет на веб сервер(ларавель) реквест с новыми данными. Ларавель вносит изменения, генерирует событие и передает его в редис. Редис в свою очередь на эхо и от туда уже к клиенту. Это все хорошо.
Проблема в том что я хотел бы обойтись без отправки отдельного реквеста на веб. Вместо этого я бы хотел использовать имеющийся канал соединения с сокет сервером. Однако эхо сервер не умеет обращаться к ларе, только к другим клиентам.
Есть ли способ организовать такую связь?
Не в сети
Тоже занимался когда-то подобным, но не ларавеле и сделал для себя вывод, что лучшим решением было разделение сервера чата и php фреймворка. Просто шарьте сессию через Redis (обязательно с id пользователя) и используйте данные сессии для полноценного чата на ноде. Желательно даже сообщения в отдельную бд писать, но не обязательно. Доступ к бд ларавеля у вас тоже есть со стороны ноды. Нужны какие-то данные? Просто обратитесь к базе и получите их.
По итогу у вас есть Laravel, который отдает фронтенд, который в свою очередь обращается к ноде и дальше работает непосредственно ТОЛЬКО с ней. Однако, нужно быть очень внимательным с окончанием сессий (по времени или вручную).
А если есть какие-либо изменения в Laravel, то через Redis можно отправить тоже событие, которое подхватит нода и дальше по сокетам разошлет.
Не в сети
В таком случае придется часть логики переносить на ноду. Я бы хотел что бы она вся осталась на стороне лары, а нода была просто транслятором. В идеале - мне нужен эхо сервер, который умеет транслировать некоторые события от пользователя в лару. Может кто-нибудь знает про такого рода наработки? Просто не хочется велосипед еще один пилить.
Не в сети
Посмотрите Ratchet+ZMQ, чат у нас работает на нем прекрасно
Не в сети
Страницы 1