Real-time notifikasi adalah fitur umum dalam aplikasi web untuk memberikan peringatan dan pembaruan instan kepada pengguna tanpa perlu menyegarkan halaman. Di Laravel, Anda dapat dengan mudah mengintegrasikan Redis untuk mengimplementasikan real-time notifikasi secara efisien. Redis akan digunakan sebagai antrian untuk mengirimkan notifikasi dari server ke klien secara instan.
Memasang Redis dan Laravel
Untuk memulai, instal Redis di server Anda dan instal predis/predis
paket Laravel melalui Komposer.
composer require predis/predis
Mengintegrasikan Real-time Notifikasi
Konfigurasi Antrian di Laravel
Pertama, konfigurasikan antrian Laravel dengan menambahkan Redis informasi ke .env
file.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Buat sebuah Event
Buat event masuk Laravel untuk mengirim real-time pemberitahuan.
php artisan make:event NewNotificationEvent
Kemudian, buka app/Events/NewNotificationEvent.php
file dan sesuaikan kontennya 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');
}
}
Konfigurasi Broadcast Driver
Buka config/broadcasting.php
file dan gunakan redis
driver untuk menerapkan real-time notifikasi dengan Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Kirim Real-time Pemberitahuan
Saat Anda perlu mengirim real-time pemberitahuan, gunakan yang event baru saja Anda buat di pengontrol atau penyedia layanan.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Menangani Real-time Notifikasi pada Klien
Terakhir, tangani real-time notifikasi pada klien menggunakan JavaScript dan Laravel Echo. Pastikan Anda telah menginstal dan mengonfigurasi 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 memungkinkan Anda menyebarkan real-time notifikasi dengan mudah di aplikasi web Anda. Ketika ada notifikasi baru, aplikasi akan mengirimkannya melalui Redis, dan klien akan menerima notifikasi tersebut secara instan tanpa perlu me-refresh halaman. Ini meningkatkan pengalaman pengguna dan meningkatkan interaktivitas aplikasi.