Real-time Notificări cu Laravel și Redis

Real-time notificările sunt o caracteristică comună în aplicațiile web pentru a oferi alerte și actualizări instantanee utilizatorilor fără a fi nevoie să reîmprospăteze pagina. În Laravel, vă puteți integra cu ușurință Redis pentru a implementa real-time notificările în mod eficient. Redis va fi folosit ca o coadă pentru a livra notificări de la server către client instantaneu.

Instalarea Redis și Laravel

Pentru a începe, instalați Redis pe serverul dvs. și instalați predis/predis pachetul Laravel prin Composer.

composer require predis/predis

Integrarea Real-time notificărilor

Configurați coada în Laravel

Mai întâi, configurați coada Laravel adăugând Redis informații în .env fișier.

QUEUE_CONNECTION=redis  
REDIS_HOST=127.0.0.1  
REDIS_PASSWORD=null  
REDIS_PORT=6379  

Creaza un Event

Creați un event in Laravel pentru a trimite real-time notificări.

php artisan make:event NewNotificationEvent

Apoi, deschideți app/Events/NewNotificationEvent.php fișierul și personalizați event conținutul.

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');  
    }  
}  

Configurați Broadcast Driver

Deschideți config/broadcasting.php fișierul și utilizați redis driverul pentru a implementa real-time notificări cu Redis.

'connections' => [  
    'redis' => [  
        'driver' => 'redis',  
        'connection' => 'default',  
    ],  
    // ...  
],  

Trimite Real-time o notificare

Când trebuie să trimiteți o real-time notificare, utilizați cea pe care event tocmai l-ați creat într-un controlor sau furnizor de servicii.

use App\Events\NewNotificationEvent;  
  
public function sendNotification()  
{  
    $message = 'You have a new notification!';  
    event(new NewNotificationEvent($message));  
}  

Gestionați Real-time notificarea asupra clientului

În cele din urmă, gestionați real-time notificarea pe client folosind JavaScript și Laravel Echo. Asigurați-vă că ați instalat și configurat Laravel Echo pentru aplicația dvs.

// 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);  
});  

 

Concluzie

Integrarea Redis și Laravel vă permite să implementați cu ușurință real-time notificări în aplicația dvs. web. Când există o nouă notificare, aplicația o va trimite prin Redis, iar clientul va primi notificarea instantaneu fără a fi nevoie să reîmprospăteze pagina. Acest lucru îmbunătățește experiența utilizatorului și îmbunătățește interactivitatea aplicației.