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

Laravel10+Vue3集成Broadcasting遇Pusher连接拒绝错误求助

问题解决:Laravel 10 + Vue 3 实时广播连接失败(cURL error 7)

核心问题是 Laravel WebSockets 服务未启动 或 Lando 环境端口未正确映射,导致6001端口无监听进程,触发连接拒绝错误。以下是分步解决方案:


1. 启动 Laravel WebSockets 服务

Laravel WebSockets 需手动启动才能监听6001端口,在 Lando 环境下执行:

lando artisan websockets:serve

如需后台运行,添加--daemon参数:

lando artisan websockets:serve --daemon

2. 配置 Lando 端口映射

Lando 默认不会暴露6001端口到本地,需在项目根目录的.lando.yml中添加端口转发:

services:
  appserver:
    ports:
      - "6001:6001" # 本地端口:容器内部端口

添加后重启 Lando 生效:

lando rebuild -y

3. 修正前端环境变量配置

前端.env中的VITE_PUSHER_APP_HOST不要加引号,否则会导致 Echo 连接地址错误:

VITE_PUSHER_APP_KEY=local
VITE_PUSHER_APP_HOST=localhost # 或127.0.0.1,对应Lando映射的本地地址
VITE_PUSHER_CLUSTER=eu

4. 验证后端事件与广播配置

  • 确保UpdateUser事件命名空间正确(如App\Events\UpdateUser),测试路由已正确引入:
    use App\Events\UpdateUser;
    
    Route::get('/test', function () {
        event(new UpdateUser());
        return '事件已触发';
    });
    
  • 确认broadcasting.php中的 Pusher 配置与.env一致:
    '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'),
            'encrypted' => false,
            'host' => '127.0.0.1', // 容器内部访问websockets服务用127.0.0.1即可
            'port' => 6001,
            'scheme' => 'http',
            'useTLS' => false
        ],
    ],
    

5. 测试连接与事件触发

  1. 启动服务后,访问http://localhost:6001/laravel-websockets,输入app key local,查看仪表盘是否正常连接,确认服务运行状态。
  2. 前端Vue组件添加监听代码,验证消息接收:
    mounted() {
        window.Echo.channel('userupdate-channel')
            .listen('UpdateUser', (e) => {
                console.log('收到实时消息:', e.message);
            });
    }
    
  3. 访问测试路由/api/test,查看前端控制台是否打印消息,同时检查websockets仪表盘的事件日志。

额外排查点

  • 若仍有问题,检查Lando容器内部是否能访问127.0.0.1:6001:
    lando ssh
    curl http://127.0.0.1:6001
    
    返回Laravel WebSockets Server则说明服务在容器内正常运行,问题出在端口映射或前端配置。
  • 确认BroadcastServiceProvider已在config/app.php中注册:
    App\Providers\BroadcastServiceProvider::class,
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:42:05