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

Laravel Valet部署API+Reverb广播至SPA遇404错误求助

问题解决方案

核心问题分析

报错Pusher error: Not found及请求路径http://ws.mydomain.test/apps//events里的空值段,说明两个关键问题:

  1. 你的PUSHER_APP_ID环境变量未正确配置,导致API请求路径拼接异常
  2. 需要确保Valet代理完整转发Reverb的HTTP API请求(/apps路径)和WebSocket连接(/app路径)

步骤1:修正Valet代理配置

确保Valet将ws.mydomain.test的所有请求(HTTP+WebSocket)完整转发到Reverb服务端口,重新执行并重启Valet:

valet proxy ws.mydomain.test http://localhost:8080
valet restart

步骤2:补全环境变量配置

在API项目的.env文件中,完整配置Reverb相关变量(重点补全PUSHER_APP_ID等核心参数):

# 广播驱动配置
BROADCAST_DRIVER=pusher

# Pusher兼容配置(Reverb基于Pusher协议)
PUSHER_APP_ID=your-reverb-app-id # 自定义ID,比如"12345"
PUSHER_APP_KEY=your-reverb-app-key # 自定义密钥,比如"my-reverb-key"
PUSHER_APP_SECRET=your-reverb-app-secret # 自定义密钥,比如"my-reverb-secret"
PUSHER_HOST=ws.mydomain.test
PUSHER_PORT=80
PUSHER_SCHEME=http
PUSHER_APP_CLUSTER=mt1 # 可留空,Reverb不强制要求

# Reverb专属配置
REVERB_APP_ID="${PUSHER_APP_ID}"
REVERB_APP_KEY="${PUSHER_APP_KEY}"
REVERB_APP_SECRET="${PUSHER_APP_SECRET}"
REVERB_HOST="${PUSHER_HOST}"
REVERB_PORT="${PUSHER_PORT}"
REVERB_SCHEME="${PUSHER_SCHEME}"

步骤3:验证配置有效性

  1. 重启Reverb服务:
    php artisan reverb:start
    
  2. 手动测试HTTP API可达性(替换your-reverb-app-id为你设置的ID):
    curl http://ws.mydomain.test/apps/your-reverb-app-id/events
    
    如果返回JSON格式的响应(而非404),说明代理和配置生效。

步骤4:前端Echo配置确认

确保前端Echo配置匹配后端参数:

import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

window.Pusher = Pusher;

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'your-reverb-app-key', // 与.env中的PUSHER_APP_KEY一致
    wsHost: 'ws.mydomain.test',
    wsPort: 80,
    forceTLS: false,
    disableStats: true,
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:52:40