我构建了一个 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;});我还需要添加其他内容才能使/pusher/auth端点正常工作吗?
2 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
从 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() }}',
}
}
});
您需要添加 CSRF-TOKEN,否则您将收到页面过期错误。
慕桂英3389331
TA贡献2036条经验 获得超8个赞
你能尝试一下吗: 尝试这个:
取消注释 config/app.php 中的 App\Providers\BroadcastServiceProvider::class 使用 php artisan config:cache 使用 php artisan 路由:缓存 使用 php artisan route:list 检查新路由广播/身份验证
- 2 回答
- 0 关注
- 147 浏览
添加回答
举报
0/150
提交
取消