Real-time Notifikasi dengan Laravel dan Redis

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.