You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8集成laravel-websockets无报错连接失败排查求助

你遇到的连接失败问题核心是SSL配置缺失与广播配置不匹配,按以下步骤排查即可解决:

排查步骤

1. 补全WebSocket SSL配置

当前前端发起的是wss加密WebSocket请求,但websockets.php中的SSL配置未加载站点证书,导致服务端无法处理加密请求。
在你的.env文件中添加站点SSL证书路径配置:

# 替换为你实际的证书文件路径
LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT=/www/server/panel/vhost/cert/yourdomain.com/fullchain.pem
LARAVEL_WEBSOCKETS_SSL_LOCAL_PK=/www/server/panel/vhost/cert/yourdomain.com/privkey.pem
# 若证书设置了密码则添加该行,无密码可忽略
# LARAVEL_WEBSOCKETS_SSL_PASSPHRASE=你的证书密码

2. 修正广播服务配置

你当前的broadcasting.php默认会请求Pusher官方服务,没有指向本地搭建的WebSocket服务,修改connections.pusher.options配置如下:

'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'),
        'useTLS' => true,
        // 新增以下3项配置
        'host' => '127.0.0.1',
        'port' => 6001,
        'scheme' => 'https',
    ],
],

3. 验证端口与网络规则

  • 执行netstat -tulpn | grep 6001确认6001端口监听地址为0.0.0.0,而非仅本地回环127.0.0.1
  • 确认服务器操作系统防火墙、云服务商安全组都已开放6001端口入站规则

4. 可选调试方案

若暂时不需要加密连接,可先将前端WebSocket连接协议改为ws,同时将broadcasting.php中的useTLS改为false、scheme改为http,先验证非加密连接是否正常,排除其他配置问题后再配置SSL。

所有配置修改完成后,重启php artisan websockets:serve服务即可生效。

内容的提问来源于stack exchange,提问作者m33ts4k0z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:24:03