广播私人频道在Laravel / Pusher中不起作用

时间:2018-10-04 19:56:42

标签: laravel vue.js broadcast pusher

伙计们!

我正在尝试使用Vue.js作为客户端订阅Laravel中的私人频道,我按照文档进行了身份验证部分,但是Pusher中的日志显示它不起作用。

我在Pusher调试日志中收到此错误消息:

Auth info required to subscribe to private-order.80

我的channels.php返回true,在浏览器的“网络”选项卡上,我可以看到广播/ auth返回的true为状态200和一个auth令牌:

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']);
    }
}

注意:我在非私有渠道进行了测试注册,并且有效。

我在vue组件中使用laravel回声来收听事件,但是它听不到,它只是在控制台上什么都不显示,这是因为它给了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);
    });
},

我为释放该推送程序错误而放弃了什么?

0 个答案:

没有答案