伙计们!
我正在尝试使用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);
});
},
我为释放该推送程序错误而放弃了什么?