laravel-echo: на Vue-клиенте не ловятся события с сервера через Echo.channel('...').listen()

Просьба помочь найти ошибку.

Настроил laravel-echo-server на redis, где он ловит и обрабатывает broadcast-событие, но либо событие не транслируется на клиент либо я его неправильно пытаюсь ловить на клиенте.

Сделал все по документации, но никак не могу поймать серверное событие на клиенте. Пробовал добавлять префиксы в js-коде к названию канала и событию - не помогло.

Такое впечатление, что с сервера оно не передается, но почему, не понимаю.

  1. Запущенный laravel-echo-server:
L A R A V E L  E C H O  S E R V E R

version 1.6.2

⚠ Starting server in DEV mode...

✔  Running at localhost on port 6001
✔  Channels are ready.
✔  Listening for http events...
✔  Listening for redis events...

Server ready!

Channel: markdoc_database_translation
Event: newMessage
  1. На клиенте под Vue.js прослушиваю канал так:
mounted() {

    window.Echo.channel('translation')
        .listen("TranslationEvent", function() {
             console.log("++++");
    })
  1. Прослушка установлена так:
import Echo from "laravel-echo"
window.io = require('socket.io-client');
if (typeof io !== 'undefined') {
    window.Echo = new Echo({
        broadcaster: 'socket.io',
        host: window.location.hostname + ':6001',
        namespace: 'App.Events',
        // transports: ['websocket', 'polling', 'flashsocket'],
    })
    console.log(window.Echo)
}
  1. PHP-событие такое:
class TranslationEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $message = null;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function broadcastOn()
    {
        return new Channel('translation');
    }

    public function broadcastAs()
    {
        return 'newMessage';
    }
}
  1. Какая-то связь с сервером через через websocket-ы имеется:

websocket


Ответы (0 шт):