Real-time Pemberitahuan dengan Laravel dan Redis

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.