Laravel框架为开发者提供了两种高效的实时通讯解决方案,通过Laravel Echo结合Pusher或Laravel Websockets都能轻松实现。下面详细介绍具体实施流程。

安装必要依赖包
通过Composer工具安装Pusher服务端组件:
composer require pusher/pusher-php-server
进行Pusher参数配置
在项目环境文件中添加以下配置项:
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=your_pusher_app_id
PUSHER_APP_KEY=your_pusher_app_key
PUSHER_APP_SECRET=your_pusher_app_secret
PUSHER_APP_CLUSTER=your_pusher_app_cluster
修改广播配置文件设置:
'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,
],
],
安装前端组件
使用包管理器安装Echo库:
npm install --save laravel-echo pusher-js
或使用yarn安装:
yarn add laravel-echo pusher-js
初始化Echo实例
在JS启动文件中进行如下配置:
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';
window.Pusher = Pusher;
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true,
});
建立事件
在客户端添加事件逻辑:
Echo.private('channel-name')
.listen('EventName', (e) => {
console.log(e);
});
触发事件广播
在服务端触发指定事件:
use AppEventsYourEvent;
event(new YourEvent($data));
安装Websockets包
通过Composer安装扩展包:
composer require beyondcode/laravel-websockets
生成配置文件
执行命令发布配置文件:
php artisan vendor:publish --provider="BeyondCodeLaravelWebSocketsWebSocketsServiceProvider"
启动服务
运行以下命令启动服务:
php artisan websockets:serve
配置广播系统
修改环境变量设置:
BROADCAST_DRIVER=pusher
调整广播配置文件:
'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,
],
],
建立事件
参考前述Echo的方法
触发事件广播
采用相同的触发方式
通过上述两种方案,开发者可以快速构建Laravel应用的实时通讯功能,满足不同场景下的业务需求。