Laravel по-русски

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

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

#1 04.08.2017 19:08:40

ВебСокеты (Laravel 5.4 + Socket.io + Node.js + Redis) - нужна помощь

Всем привет. Очень нужно объяснение одной проблемы, попробую коротко.

Начну с задачи: нужно сделать поисковую выдачу на вебсокетах. То есть пользователь ввел запрос, браузер соединился по вебсокету с сервером, при нахождении очередного результата сервер отправляет его браузеру и браузер отображает. Вебсокет нужен потому, что поиск может длиться хоть полчаса (очень большое количество разных источников), и использовать тут ajax я не хочу (чтобы не опрашивать сервер постоянно и не нагружать его), а просто загрузка страницы и вовсе исключена в силу постановки самой задачи (долгое время выполнения). Очень привлекательной выглядит событийная модель вебсокета, в общем.

Теперь о проблеме. Я прочитал и просмотрел много материалов про связку, которая, видимо, самая популярная. Ставится node.js, в браузер грузится socket.io. Браузер общается с node.js. Сам node.js общается с laravel через redis. Laravel броадкастом рассылает ивент с именем канала, он (видимо), пишется в redis, а node.js слушает redis, подхватывает новый ивент и рассылает его всем браузерам, слушающим этот канал.

Но мне нужно:

а) Передать параметры поиска в Laravel из браузера
б) Вернуть результат обработки от Laravel конкретному браузеру, а не всем подряд вообще

Пункт "б" вообще нигде не раскрывается. Если пользователь не авторизован, то совершенно (мне) не понятно как laravel будет передавать что-то ему, ведь о том, кто именно запрашивает результат laravel не знает.

Я нигде не могу найти ответы на эти вопросы и даже не понимаю, туда ли я двигаюсь. Кто-нибудь сталкивался, может подсказать?

Извините, если сумбурно написал, под вечер каша в голове.

Изменено aanon (04.08.2017 19:14:10)

Не в сети

#2 04.08.2017 19:11:52

Re: ВебСокеты (Laravel 5.4 + Socket.io + Node.js + Redis) - нужна помощь

Дополню, что и выкидывать отсюда Laravel не хочется. Там уже есть сам функционал поиска. Писать демон на PHP и прочее вроде и не нужно... А вроде и как приспособить Laravel - непонятно.

Не в сети

#3 05.08.2017 00:55:59

Re: ВебСокеты (Laravel 5.4 + Socket.io + Node.js + Redis) - нужна помощь

б) Вернуть результат обработки от Laravel конкретному браузеру, а не всем подряд вообщеПункт "б" вообще нигде не раскрывается.

Ты вроде во всем уже сам разобрался, попробуй погуглить по словам "websocket send to specific client".
Нет "общего" решения, везде разные исхищрения на основании идентификаторов соединений и названий каналов.

Изменено covobo (05.08.2017 01:06:41)

Не в сети

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