Vue Laravel 私人频道

问题描述

我在 Laravel/Vue 应用程序上与用户验证私人频道时遇到问题。 首先,我尝试使用认频道,一切正常,但目前实施私人频道不太好。

这就是它的样子:

频道.PHP

broadcast::channel('user.{id}',function ($user,$id) {
     return (int) $user->id === (int) $id;
});

broadcast::channel('order.{id}',$id) {
  return true;
  // return (int) $user->id === (int) $id;
});

这是我目前使用的 2 条路线。

这是订单类:

class SingleOrder implements Shouldbroadcast
{
    use dispatchable,InteractsWithSockets,SerializesModels;

    public $order;
    public $user;

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

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('order.'. $this->order->id);
    }

    public function broadcastAs(){
        return 'order-updated';
    }

    // public function broadcastWith(){
    //     return ['id' => $this->user];
    // }
}

所以我发送事件的方式如下:

broadcast(new SingleOrder(Auth::user(),$broadcast));

这是我连接到频道的方式

window.Echo.private("order." + this.userData.id).listen(".order-updated",(user) => {
       console.log('connected')
});

所以在控制台我总是得到响应

["私有订单没有回调。d42cd0e2-3683-4b33-9926-3707c974cf9f 对于推送者:subscription_error"]

这里可能有什么问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...