laravel-echo: на Vue-клиенте не ловятся события с сервера через Echo.channel('...').listen()
Просьба помочь найти ошибку.
Настроил laravel-echo-server на redis, где он ловит и обрабатывает broadcast-событие, но либо событие не транслируется на клиент либо я его неправильно пытаюсь ловить на клиенте.
Сделал все по документации, но никак не могу поймать серверное событие на клиенте. Пробовал добавлять префиксы в js-коде к названию канала и событию - не помогло.
Такое впечатление, что с сервера оно не передается, но почему, не понимаю.
- Запущенный 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
- На клиенте под Vue.js прослушиваю канал так:
mounted() {
window.Echo.channel('translation')
.listen("TranslationEvent", function() {
console.log("++++");
})
- Прослушка установлена так:
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)
}
- 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';
}
}
- Какая-то связь с сервером через через websocket-ы имеется:
