问题描述
我在 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 (将#修改为@)