Я пытаюсь получить уведомление, используя echo + pusher. Я могу отправлять сообщения в пушер и консоль пушера, чтобы получить событие и канал, но я не могу получить эти данные на laravel. Я прочитал много документов, но ни один из них не работает для меня.
Класс WebNotification // Файл уведомления
private $subscription;
public function __construct($data)
{
$this->subscription = $data;
}
public function via($notifiable)
{
return ['database','broadcast'];
}
public function toBroadcast($notifiable)
{
return new BroadcastMessage([
'data' => $this->subscription,
'count' => $notifiable->unreadNotifications->count()
]);
}
Модель учетной записи
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
class account extends Model
{
use Notifiable;
public function receivesBroadcastNotificationsOn()
{
return 'accounts.'.$this->id;
}
}
MyNotification // Для вызова событие для отправки данных в pusher
public function DatabaseNot(){
$user = Account::where('id', Cookie::get('uid'))->first();
$data = collect(['title'=>'Hello Title', 'body'=>'my body']);
$user->notify(new WebNotification($data));
return view('layout.test',['user'=>$user]);
}
Pusher log
Channel: private-accounts.23, Event: Illuminate\Notifications\Events\BroadcastNotificationCreated
Я вызываю Echo в resorces / js / app. js
Echo.private('App.accounts.23')
.notification((notification) => {
console.log(notification.type);
});
Я сделал не получить никакого ответа от этого. Я уже добавил токен csrf в мета, я скомпилировал js код, используя NPM run watch. Я пробовал много других способов, никто не предоставил четкого документа, это так запутанно.