Получите Notificatoin Pusher + Echo в Laravel - PullRequest
1 голос
/ 02 февраля 2020

Я пытаюсь получить уведомление, используя 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. Я пробовал много других способов, никто не предоставил четкого документа, это так запутанно.

...