您好,登錄后才能下訂單哦!
Laravel 事件廣播允許您輕松地將應用程序的事件廣播到多個渠道,如 Redis、Pusher、Beanstalkd 等。以下是配置 Laravel 事件廣播的步驟:
在您的 Laravel 項目中,首先需要安裝 Laravel Echo 和相關依賴。在項目根目錄下運行以下命令:
composer require pusher/php-server
npm install --save laravel-echo pusher-js
.env
文件在 Laravel 項目的根目錄下,找到 .env
文件并編輯它。設置以下變量以配置事件廣播:
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
LARAVEL_WEBSOCKET_SSL_LOCAL_CERT=path/to/your/cert.pem
LARAVEL_WEBSOCKET_SSL_LOCAL_PK=path/to/your/key.pem
LARAVEL_WEBSOCKET_SSL_PASSPHRASE=your_pusher_ssl_passphrase
請確保將上述值替換為您自己的 Pusher 應用程序憑據和 SSL 證書路徑。
config/app.php
文件在 config/app.php
文件中,找到 providers
數組并添加以下行:
App\Providers\BroadcastServiceProvider::class,
同時,找到 aliases
數組并添加以下行:
'Broadcast' => App\Providers\BroadcastServiceProvider::class,
'Echo' => Illuminate\Support\Facades\Echo::class,
在 app/Events
目錄下創建一個新的事件類。例如,創建一個名為 UserRegistered
的事件:
php artisan make:event UserRegistered
這將在 app/Events
目錄下生成一個名為 UserRegistered.php
的文件。編輯該文件以定義事件的屬性和構造函數。
在 app/Listeners
目錄下創建一個新的監聽器。例如,創建一個名為 SendWelcomeEmail
的監聽器:
php artisan make:listener SendWelcomeEmail --event=UserRegistered
這將在 app/Listeners
目錄下生成一個名為 SendWelcomeEmail.php
的文件。編輯該文件以實現事件監聽器的邏輯。
在 app/Providers/EventServiceProvider.php
文件中,將新創建的監聽器添加到 listen
屬性中:
protected $listen = [
UserRegistered::class => [
SendWelcomeEmail::class,
],
];
在 resources/js
目錄下創建一個名為 bootstrap-echo.js
的文件。編輯該文件以配置 Laravel Echo 和 Pusher:
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true,
});
同時,在 resources/views/layouts/app.blade.php
文件中,添加以下代碼以包含前端腳本:
<script src="{{ mix('/js/bootstrap-echo.js') }}"></script>
現在,您可以在應用程序中觸發事件。例如,在控制器中觸發 UserRegistered
事件:
use App\Events\UserRegistered;
public function store(Request $request)
{
// ...
event(new UserRegistered($user));
return redirect()->route('success');
}
最后,您可以在前端代碼中監聽事件。例如,在 resources/views/welcome.blade.php
文件中,添加以下代碼以監聽 UserRegistered
事件并顯示一條消息:
<div id="app">
<echo-subscribe :channel="'user-registered'">
@foreach ($users as $user)
<p>{{ $user->name }} has been registered.</p>
@endforeach
</echo-subscribe>
</div>
現在,當用戶注冊時,應用程序將觸發 UserRegistered
事件,并在前端顯示一條消息。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。