Laravel 8.83使用Websocket遇Pusher错误:auth_key应为有效应用密钥
问题
使用Laravel 8.83版本,已完成Laravel Websocket全部配置步骤,但抛出Illuminate\Broadcasting\BroadcastException异常,提示Pusher错误:auth_key should be a valid app key。
.env配置内容如下:
BROADCAST_DRIVER=pusher CACHE_DRIVER=file FILESYSTEM_DRIVER=local QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 PUSHER_APP_ID=testappid PUSHER_APP_KEY=123456 PUSHER_APP_SECRET=testappsecret PUSHER_HOST=localhost PUSHER_PORT=6001 PUSHER_SCHEME=http PUSHER_APP_CLUSTER=mt1
解决方法
清除配置缓存,确保.env生效
Laravel可能缓存了旧配置,执行以下命令重置缓存:php artisan config:clear php artisan cache:clear之后重启本地服务,让新配置生效。
对齐前后端Pusher密钥
如果使用Pusher前端SDK,初始化时的appKey必须和.env里的PUSHER_APP_KEY完全一致,不能有拼写错误或空格。示例前端初始化代码:import Pusher from 'pusher-js'; const pusher = new Pusher('123456', { cluster: 'mt1', wsHost: 'localhost', wsPort: 6001, forceTLS: false, disableStats: true });检查
config/broadcasting.php配置
确认pusher配置项正确读取.env变量,重点检查key字段:'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), 'host' => env('PUSHER_HOST', 'api.pusherapp.com'), 'port' => env('PUSHER_PORT', 443), 'scheme' => env('PUSHER_SCHEME', 'https'), 'encrypted' => true, 'useTLS' => env('PUSHER_SCHEME') === 'https', ], ],验证Laravel Websocket服务端应用配置
若使用beyondcode/laravel-websockets包,需在config/websockets.php的apps数组中配置对应应用,确保key与.env值一致:'apps' => [ [ 'id' => env('PUSHER_APP_ID'), 'name' => env('APP_NAME'), 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'enable_client_messages' => false, 'enable_statistics' => true, ], ],
内容的提问来源于stack exchange,提问作者akmal990
相关产品推荐
相关产品推荐

