Size: a a a

Laravel для начинающих

2020 January 18

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
👌
источник

ЕК

Егор Карась in Laravel для начинающих
Сюда можно сообщения пересылать?
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
если по сабжу
источник

ЕК

Егор Карась in Laravel для начинающих
Нельзя!
источник

ЕК

Егор Карась in Laravel для начинающих
Егор 🐠 Черненок, [19.01.20 01:24]
Тестовый стенд.

Схема такая:

1) Есть компонент на Vue, который кидает в приватный канал сообщение.

Echo.private('lobby-chat')
   .whisper('test', {
       message: message
   });

2) Есть листенер, который слышит это сообщение:

public function handle($event)
{
   LobbyMessage::dispatch($event->data->message);
}

и диспатчит эвент.

3) Та же компонента на Vue подписана на канал и слушает его.

Как только приходит — отрисовывает.

Всё АТЛИЧНА

НО!

Есть вот такой роут:

Route::get('/test', function () {
       App\Events\LobbyMessage::dispatch('System: test message');
   });

Когда я его дёргаю — всё не менее отлично, сообщение приходит на все устройства моментально, т.к. этот эвент имплементирует ShouldBroadcastNow

Однако, если зависперить сообщение с фронта и потом дёрнуть роут — оно думает очень-очень долго, и сообщения приходят со следующим pong в сокетах

Егор 🐠 Черненок, [19.01.20 01:24]
Собсна вопрос: а где они болтаются всё это время и почему?

Егор 🐠 Черненок, [19.01.20 01:47]
[ Photo ]
О!

Смарите, чё творится.

Егор 🐠 Черненок, [19.01.20 01:48]
А в логах чисто.

Ну и к чему такая ошибка без описания?

Егор 🐠 Черненок, [19.01.20 02:01]
Продолжаем расследование!

public function handle($event)
   {
       dump($event); //выполняется моментально, всё ок
       LobbyMessage::dispatch($event->data->message); //думоет, думоет, думоет, **ОШИБКА**, но сообщение улетает
   }

LobbyMessage::dispatch($event->data->message)

Эта же строчка кода, но в замыкании гет-роута срабатывает моментально в 100% случаев, за исключением тех, когда оно уже думоет из-за листенера
источник

ЕК

Егор Карась in Laravel для начинающих
Вряд ли, конечно, но пусть и тут полежит)
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Егор Карась
Егор 🐠 Черненок, [19.01.20 01:24]
Тестовый стенд.

Схема такая:

1) Есть компонент на Vue, который кидает в приватный канал сообщение.

Echo.private('lobby-chat')
   .whisper('test', {
       message: message
   });

2) Есть листенер, который слышит это сообщение:

public function handle($event)
{
   LobbyMessage::dispatch($event->data->message);
}

и диспатчит эвент.

3) Та же компонента на Vue подписана на канал и слушает его.

Как только приходит — отрисовывает.

Всё АТЛИЧНА

НО!

Есть вот такой роут:

Route::get('/test', function () {
       App\Events\LobbyMessage::dispatch('System: test message');
   });

Когда я его дёргаю — всё не менее отлично, сообщение приходит на все устройства моментально, т.к. этот эвент имплементирует ShouldBroadcastNow

Однако, если зависперить сообщение с фронта и потом дёрнуть роут — оно думает очень-очень долго, и сообщения приходят со следующим pong в сокетах

Егор 🐠 Черненок, [19.01.20 01:24]
Собсна вопрос: а где они болтаются всё это время и почему?

Егор 🐠 Черненок, [19.01.20 01:47]
[ Photo ]
О!

Смарите, чё творится.

Егор 🐠 Черненок, [19.01.20 01:48]
А в логах чисто.

Ну и к чему такая ошибка без описания?

Егор 🐠 Черненок, [19.01.20 02:01]
Продолжаем расследование!

public function handle($event)
   {
       dump($event); //выполняется моментально, всё ок
       LobbyMessage::dispatch($event->data->message); //думоет, думоет, думоет, **ОШИБКА**, но сообщение улетает
   }

LobbyMessage::dispatch($event->data->message)

Эта же строчка кода, но в замыкании гет-роута срабатывает моментально в 100% случаев, за исключением тех, когда оно уже думоет из-за листенера
Чёт не пойму две вещи
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Почему в этой группе всё ещё включен слоумод
источник

ИЛ

Иван Лещенко in Laravel для начинающих
И как ты ловишь whisper?
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Разве его задача как раз не в том, чтобы ничего не отправлять на бек, а отправлять только другим юзерам в канале?
источник

ЕК

Егор Карась in Laravel для начинающих
Иван Лещенко
И как ты ловишь whisper?
ето не laravel-echo-server уже, ето ратчет, пакет beyondcode/laravel-websockets.

В общем, ловлю.
Обычным листенером ловлю
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Дока лары пишет что whisper таки игнорит бек. Не юзал этот сервер сокетов, но мб стоит юзать XHR для всего, что должно идти на бек?
источник

ИЛ

Иван Лещенко in Laravel для начинающих
источник

ЕК

Егор Карась in Laravel для начинающих
Он может игнорить что хочет, но я его ловлю)
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Егор Карась
Он может игнорить что хочет, но я его ловлю)
А почему именно whisper? Проще же отправить XHR, чем как-то изменять эхо
источник

ЕК

Егор Карась in Laravel для начинающих
Та нет же у меня эхо-сервера на ноде, ето ратчет, он на пхп, так что не проблема перехватывать)
источник

ЕК

Егор Карась in Laravel для начинающих
Просто сокет уже открыт, зачем ещё какие-то допонительно запросы пулять?
источник

ЯЗ

Яков Зверев in Laravel для начинающих
Ребята, скажите
источник

ЯЗ

Яков Зверев in Laravel для начинающих
А на собеседовании если в требованиях знание Unix,а у тебя виндовс, прокатит сказать что скачаю завтра  линукс и быстро научусь?
источник

Р

Руслан in Laravel для начинающих
Яков Зверев
А на собеседовании если в требованиях знание Unix,а у тебя виндовс, прокатит сказать что скачаю завтра  линукс и быстро научусь?
нет
источник