Real-time pemberitahuan ialah ciri biasa dalam aplikasi web untuk memberikan makluman dan kemas kini segera kepada pengguna tanpa perlu memuat semula halaman. Dalam Laravel, anda boleh menyepadukan dengan mudah Redis untuk melaksanakan real-time pemberitahuan dengan cekap. Redis akan digunakan sebagai baris gilir untuk menghantar pemberitahuan daripada pelayan kepada pelanggan serta-merta.
Memasang Redis dan Laravel
Untuk bermula, pasang Redis pada pelayan anda dan pasang predis/predis
pakej Laravel melalui Komposer.
composer require predis/predis
Mengintegrasikan Real-time Pemberitahuan
Konfigurasi Baris Gilir dalam Laravel
Mula-mula, konfigurasikan baris gilir Laravel dengan menambahkan Redis maklumat pada .env
fail.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Buat satu Event
Buat event masuk Laravel untuk menghantar real-time pemberitahuan.
php artisan make:event NewNotificationEvent
Kemudian, buka app/Events/NewNotificationEvent.php
fail dan sesuaikan kandungannya event.
use Illuminate\Broadcasting\Channel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
use Illuminate\Queue\SerializesModels;
class NewNotificationEvent implements ShouldBroadcastNow
{
use SerializesModels;
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('notifications');
}
}
Konfigurasikan Broadcast Driver
Buka config/broadcasting.php
fail dan gunakan redis
pemacu untuk melaksanakan real-time pemberitahuan dengan Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Hantar Real-time Pemberitahuan
Apabila anda perlu menghantar real-time pemberitahuan, gunakan pemberitahuan event yang baru anda buat dalam pengawal atau pembekal perkhidmatan.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Mengendalikan Real-time Pemberitahuan pada Pelanggan
Akhir sekali, kendalikan real-time pemberitahuan pada klien menggunakan JavaScript dan Laravel Echo. Pastikan anda telah memasang dan mengkonfigurasi Laravel Echo untuk aplikasi anda.
// Connect to the 'notifications' channel
const channel = Echo.channel('notifications');
// Handle the event when receiving a real-time notification
channel.listen('.NewNotificationEvent',(notification) => {
alert(notification.message);
});
Kesimpulan
Mengintegrasikan Redis dan Laravel membolehkan anda menggunakan real-time pemberitahuan dengan mudah dalam aplikasi web anda. Apabila terdapat pemberitahuan baharu, aplikasi akan menghantarnya melalui Redis, dan pelanggan akan menerima pemberitahuan serta-merta tanpa perlu memuat semula halaman. Ini meningkatkan pengalaman pengguna dan meningkatkan interaktiviti aplikasi.