执行php artisan websockets:serve时出现未处理Promise拒绝类型错误
解决Laravel Websockets启动时的TypeError问题
问题原因
报错是因为React\Http\Io\ClientRequestStream::closeError()方法要求接收Exception类型的参数,但实际传入了Error类型的对象,这是依赖包版本不兼容导致的——react/http的新版本修改了参数类型定义,而beyondcode/laravel-websockets暂未适配该变化。
解决方案
- 锁定
react/http的兼容版本:打开项目根目录的composer.json,在require节点中添加或修改:"react/http": "^1.8" - 执行composer更新命令,安装指定版本的依赖:
composer update react/http - 清除Laravel配置和缓存:
php artisan config:clear php artisan cache:clear - 重新启动websocket服务:
php artisan websockets:serve
备选方案
如果上述方法无效,可以尝试降级beyondcode/laravel-websockets到稳定兼容版本:
- 修改
composer.json中的依赖:"beyondcode/laravel-websockets": "^1.12" - 执行更新命令:
composer update beyondcode/laravel-websockets
内容的提问来源于stack exchange,提问作者Mehrabt
相关产品推荐
相关产品推荐

