Трансляции частных каналов не работают в Laravel / Pusher - PullRequest
0 голосов
/ 04 октября 2018

парни!

Я пытаюсь подписаться на частные каналы в Laravel, используя Vue.js в качестве клиента, я выполнил часть аутентификации, следуя документации, но журналы в Pusher показывают, что она не работает.

Я получаю это сообщение об ошибке в журнале отладки Pusher:

Auth info required to subscribe to private-order.80

Мой channel.php возвращает значение true, и на вкладке сети браузера я вижу сообщение о трансляции / возвращении сообщенияtrue со статусом 200 и токеном аутентификации:

use App\Models\Order;

Broadcast::channel('order.{orderId}', function ($user, $orderId){
   return $user->id === Order::find($orderId)->user_id;
});

Мой класс событий, работает правильно:

class OrderStatusEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $order;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($order)
    {
        $this->order = $order;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */

    public function broadcastOn()
    {
        // return new Channel('order');
        return new PrivateChannel('order.' . $this->order['id']);
    }
}

Примечание: я провел тестирование регистрации в не приватных каналах, и это сработало.

Я использую laravel echo в компоненте vue, чтобы услышать событие, но он не может слышать, он просто ничего не отображает на консоли, потому что он выдал эту ошибку выше об аутентификации в Pusher.

created() {
  this.checkOrder();
  this.countDown();

  let order = this.getOrder();

  window.Echo.private('order.' + order.id)
    .listen('OrderStatusEvent', (e) => {
      console.log('event...');
      console.log(e);
    });
},

Что я отпустил, чтобы получить эту ошибку толкателя?

...