如何在Laragon环境中运行Laravel Websockets?
Laravel Websockets 在Laragon环境下连接被拒故障修复方案
1 优先排查端口占用问题
ERR_CONNECTION_REFUSED最常见的原因是6001端口被其他服务占用,或者websockets服务根本没有成功启动:
- Windows系统下打开命令提示符执行
netstat -ano | findstr "6001",如果有返回结果,说明6001端口被其他进程占用,可直接结束占用进程,或启动websockets时指定其他端口:php artisan websockets:serve --port=6002,同时同步修改前端连接的端口参数。 - 执行
php artisan websockets:serve后观察终端输出,如果直接退出或抛出明确报错,优先按报错提示修复,常见原因包括config/websockets.php配置缺失、Pusher相关依赖未安装、env配置的APP_KEY和websockets配置的密钥不匹配。
2 适配Laragon环境的WSS配置
你当前使用的是WSS加密协议,Laravel Websockets默认启动的是未加密的WS服务,没有加载SSL证书,HTTPS站点下浏览器会拦截未加密WS请求,需要手动配置Laragon生成的站点证书:
- 找到Laragon为
nextlevelbot.test生成的SSL证书,默认存放路径为Laragon安装目录/etc/ssl/,对应域名的crt和key两个文件。 - 编辑
config/websockets.php文件,修改ssl配置段:
'ssl' => [ 'local_cert' => '替换为你的Laragon实际路径/etc/ssl/nextlevelbot.test.crt', 'local_pk' => '替换为你的Laragon实际路径/etc/ssl/nextlevelbot.test.key', 'passphrase' => null, 'verify_peer' => false, ],
- 执行
php artisan config:clear清空配置缓存后,重新启动websockets服务即可。
3 验证配置有效性
如果配置完成后还是连接失败,可先将前端连接地址修改为WS协议(把wss://改为ws://,前端加密参数encrypted设为false)测试连通性,如果WS可正常连接,说明是SSL证书配置有误,重新核对证书路径是否填写正确即可。
内容的提问来源于stack exchange,提问作者shado
相关产品推荐
相关产品推荐

