reverb 是 laravel 官方推荐的轻量级原生 php websocket 服务器,需通过 composer 安装、配置广播驱动为 reverb、运行 php artisan reverb:start 启动服务,并配合 laravel echo 前端连接监听事件。

如果您希望在 Laravel 应用中快速启用 WebSocket 功能,Reverb 是官方推荐的轻量级、原生 PHP 实现的 WebSocket 服务器。以下是使用 Reverb 搭建 WebSocket 服务的具体步骤:
一、安装 Reverb 扩展包
Reverb 作为 Laravel 官方维护的 WebSocket 服务器组件,需通过 Composer 安装并注册服务提供者。安装后无需额外配置即可与 Laravel 的广播系统集成。
1、在项目根目录执行命令安装 Reverb:composer require laravel/reverb
2、运行 Artisan 命令发布配置文件:php artisan vendor:publish --provider="Laravel\Reverb\ReverbServiceProvider" --tag="reverb-config"
3、确认 config/reverb.php 文件已生成,并检查默认监听地址为 127.0.0.1:8080。
二、配置广播驱动为 Reverb
Laravel 默认使用 Pusher 或 Redis 驱动广播事件,启用 Reverb 后需将广播驱动切换至 reverb,使事件自动通过本地 WebSocket 通道分发。
1、打开 .env 文件,修改广播驱动配置:BROADCAST_DRIVER=reverb
2、确保 APP_URL 与前端连接地址一致,例如:APP_URL=http://localhost
3、验证 config/broadcasting.php 中 'reverb' 驱动已存在且未被注释。
三、启动 Reverb 服务器进程
Reverb 提供专用 Artisan 命令启动守护进程,该进程监听指定端口并处理 WebSocket 握手与消息路由,支持热重载与日志输出。
1、在终端中运行启动命令:php artisan reverb:start
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它不是新的编程语言,而是一种使用现有标准的新方法,最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容,不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。《php中级教程之ajax技术》带你快速
2、观察控制台输出是否显示 Server started on http://127.0.0.1:8080
3、如需后台运行,添加 --daemon 参数:php artisan reverb:start --daemon
四、定义并广播 WebSocket 事件
Reverb 要求广播事件类实现 ShouldBroadcast 接口,并可选地指定频道与权限逻辑,事件数据将自动序列化为 JSON 并推送到订阅客户端。
1、生成事件类:php artisan make:event UserJoinedChannel
2、在事件类中添加 ShouldBroadcast 接口及 broadcastOn() 方法,返回 PrivateChannel 实例:return new PrivateChannel('chat.' . $this->roomId);
3、在控制器中触发事件:event(new UserJoinedChannel($roomId));
五、前端连接 Reverb 并监听事件
Laravel Echo 客户端支持直接连接 Reverb 服务器,无需第三方服务,连接时需指定主机、端口及加密选项,确保与后端配置一致。
1、在 resources/js/bootstrap.js 中配置 Echo:import { createEcho } from '@laravel/echo';
2、初始化 Echo 实例,设置 host 和 port:const echo = createEcho({ broadcaster: 'reverb', key: 'your-pub-key', wsHost: 'localhost', wsPort: 8080, forceTLS: false });
3、在组件中监听事件:echo.private('chat.123').listen('UserJoinedChannel', (e) => { console.log(e); });









