laravel Reverb 是实现 Laravel 应用实时通信的高效方案,取代传统第三方服务,内置 websocket 支持,结合广播系统可轻松完成聊天、通知等功能。1. Reverb 作为官方 WebSocket 服务器,负责实时消息推送;2. 广播系统定义事件与频道;3. 使用 composer require laravel/reverb 安装并运行 php artisan reverb:install 配置;4. 启动 php artisan reverb:start 服务,基于 swoole 处理连接;5. 创建实现 ShouldBroadcast 的事件类,指定 broadcastOn 频道;6. 前端通过 Laravel echo 连接本地 Reverb 服务(默认端口 8080);7. 监听频道接收事件,触发 Event(new MessageSent) 即推送至客户端;8. 生产环境建议搭配 nginx 与 ssl 部署以确保稳定安全。整个流程集成度高,适合快速开发中小型实时应用。

想在Laravel应用中实现实时通信,Laravel Reverb 是目前最高效的选择。它取代了传统基于第三方服务或自建WebSocket服务器的方式,直接内建高性能的实时通信能力。结合 Laravel 广播系统,你可以轻松实现聊天室、通知推送、实时数据更新等功能。
理解 Laravel 广播与 Reverb 的关系
Laravel 广播系统允许你将事件“广播”到客户端,而 Reverb 是 Laravel 官方推出的 WebSocket 服务器,负责维持长连接并实时推送消息。两者配合,形成完整的实时通信链路。
过去常用的是 Pusher 或 laravel-websockets 扩展包,但 Reverb 提供了更原生、更快速的解决方案,专为 Laravel 设计,部署和配置更加简洁。
启用 Laravel Reverb:安装与配置
确保你使用的是 Laravel 10 或更高版本,并通过 Composer 安装 Reverb:
composer require laravel/reverb
安装完成后运行:
php artisan reverb:install
这个命令会发布配置文件 config/reverb.php 并准备必要的资源。接着启动 Reverb 服务器:
php artisan reverb:start
默认情况下,Reverb 使用内置的 Swoole 驱动处理 WebSocket 连接,无需额外安装外部服务。
创建广播事件并推送到客户端
你需要定义一个可广播的事件类。使用 Artisan 命令生成:
php artisan make:event MessageSent –broadcast
编辑该事件类,确保实现了 ShouldBroadcast 接口,并指定频道:
class MessageSent implements ShouldBroadcast { public function __construct(public string $message) {} public function broadcastOn() { return new Channel('chat'); } public function broadcastWith() { return ['message' => $this->message]; } }
当触发这个事件时,Laravel 会自动将其发送到 Reverb 服务器,再由 Reverb 推送给所有订阅了 chat 频道的客户端。
前端监听:使用 Laravel Echo 连接 Reverb
在前端引入 Laravel Echo 和对应的 WebSocket 客户端:
npm install laravel-echo
初始化 Echo,指向本地运行的 Reverb 服务(默认端口 8080):
import Echo from "laravel-echo"; window.Echo = new Echo({ broadcaster: 'reverb', key: 'your-app-key', // 在 config/reverb.php 中定义 wsHost: window.location.hostname, wsPort: 8080, wssPort: 8080, forceTLS: false, enabledTransports: ['ws', 'wss'] }); window.Echo.channel('chat') .listen('MessageSent', (e) => { console.log(e.message); });
只要后端触发 event(new MessageSent(‘Hello World’));,前端就会收到并打印消息。
基本上就这些。从事件定义到前端监听,整个流程清晰且集成度高。Laravel Reverb 让实时功能不再复杂,适合中小型项目快速上线。关键是确保环境支持 Swoole 或其他兼容驱动,生产环境建议配合 Nginx 和 SSL 使用。不复杂但容易忽略。
以上就是Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程的详细内容,更多请关注php中文网其它相关文章!