Я пытаюсь получить событие в Laravel.1) Событие вызова:
broadcast(new MessagePosted($message, $user))->toOthers();
2) Сообщение:
public function __construct(Message3 $message, User $user)
{
$this->message=$message;
$this->user=$user;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new Channel('chatroom');
}
Исправить .env:
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=from https://dashboard.pusher.com/
PUSHER_APP_KEY= from https://dashboard.pusher.com/
PUSHER_APP_SECRET= from https://dashboard.pusher.com/
PUSHER_CLUSTER=en
Добавить в bootstrap.js:
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true
});
Слушатель на блейде:
mounted() {
this.echo.join('chatroom')
.here()
.joining()
.leaving()
.listen('MessagePosted', (e) => {
console.log(e);
console.log("messages get!")
});
},
По какой-то причине событие не работает.В файле MessagePosted все работает (проверьте в дампе).