Inv*_*tax 2 php laravel pusher
我构建了一个 Laravel 应用程序,尝试通过 Pusher.com 实现 Web Sockets(第一次)。
虽然我的公共频道订阅工作正常,但我很难让私人频道正常工作。
根据 laravel 文档,您需要取消我拥有的配置文件App\Providers\BroadcastServiceProvider::class中的注释。app.php
我的channels.php 有以下规则
Broadcast::channel('App.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
Broadcast::channel('private-queue.business.{business}', function ($user, Business $business) {
// @todo: add real authentication
return true;
});
Run Code Online (Sandbox Code Playgroud)
我还需要添加其他内容才能使/pusher/auth端点正常工作吗?
从 Laravel 7.x 开始,广播端点是broadcasting/auth而不是pusher/auth。
我需要像这样更新我的 JS 才能定义自定义身份验证端点:
const pusher = new Pusher('{{ env('PUSHER_APP_KEY') }}', {
cluster: '{{ env('PUSHER_APP_CLUSTER') }}',
authEndpoint: '/broadcasting/auth',
auth: {
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}',
}
}
});
Run Code Online (Sandbox Code Playgroud)
您需要添加 CSRF-TOKEN,否则您将收到页面过期错误。