Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.04.2018 11:54:50

Связь с ларавель через web socket

Всем привет!
Попробовал состряпать сайт-чат на ларавеле. Появились вопросы:
Я использовал связку ларавель, редис, ларавель эхо(нода) и серверная библиотека эхо. В результате у меня получилось сделать приложение которое коннектится к сокет серверу (Нода), затем отправляет на веб сервер(ларавель) реквест с новыми данными. Ларавель вносит изменения, генерирует событие и передает его в редис. Редис в свою очередь на эхо и от туда уже к клиенту. Это все хорошо.
Проблема в том что я хотел бы обойтись без отправки отдельного реквеста на веб. Вместо этого я бы хотел использовать имеющийся канал соединения с сокет сервером. Однако эхо сервер не умеет обращаться к ларе, только к другим клиентам.
Есть ли способ организовать такую связь?

Не в сети

#2 Сегодня 11:29:21

Re: Связь с ларавель через web socket

Тоже занимался когда-то подобным, но не ларавеле и сделал для себя вывод, что лучшим решением было разделение сервера чата и php фреймворка. Просто шарьте сессию через Redis (обязательно с id пользователя) и используйте данные сессии для полноценного чата на ноде. Желательно даже сообщения в отдельную бд писать, но не обязательно. Доступ к бд ларавеля у вас тоже есть со стороны ноды. Нужны какие-то данные? Просто обратитесь к базе и получите их.
По итогу у вас есть Laravel, который отдает фронтенд, который в свою очередь обращается к ноде и дальше работает непосредственно ТОЛЬКО с ней. Однако, нужно быть очень внимательным с окончанием сессий (по времени или вручную).
А если есть какие-либо изменения в Laravel, то через Redis можно отправить тоже событие, которое подхватит нода и дальше по сокетам разошлет.

Не в сети

Подвал раздела