/pusher/auth 端点在 Laravel 中返回 404

/pusher/auth endpoint returning 404 in Laravel

我构建了一个 Laravel 应用程序,我试图通过 Pusher.com 实现 Web 套接字(这是第一次)。

虽然我的 public 频道订阅工作正常,但我很难让私人频道正常工作。

根据 laravel 文档,您需要在我拥有的 app.php 配置文件中取消注释 App\Providers\BroadcastServiceProvider::class

我的 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 端点正常工作吗?

你可以试试: 试试这个:

在 config/app.php 中取消注释 App\Providers\BroadcastServiceProvider::class 使用 php artisan config:cache 使用 php artisan route:cache 用 php artisan route:list

检查新路线 broadcasting/auth

Source

从 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 否则您将收到页面过期错误。