Real-time Varsler med Laravel og Redis

Real-time varsler er en vanlig funksjon i nettapplikasjoner for å gi umiddelbare varsler og oppdateringer til brukere uten å måtte oppdatere siden. I Laravel kan du enkelt integrere Redis for å implementere real-time varslinger effektivt. Redis vil bli brukt som en kø for å levere varsler fra serveren til klienten umiddelbart.

Installere Redis og Laravel

For å komme i gang, installer Redis på serveren din og installer predis/predis pakken Laravel via Composer.

composer require predis/predis

Integrering av Real-time varsler

Konfigurer kø inn Laravel

Først konfigurerer du køen Laravel ved å legge til Redis informasjonen i .env filen.

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

Opprett en Event

Opprett en event inn Laravel for å sende real-time varsler.

php artisan make:event NewNotificationEvent

Åpne deretter app/Events/NewNotificationEvent.php filen og tilpass event innholdet.

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

Konfigurer Broadcast Driver

Åpne config/broadcasting.php filen og bruk redis driveren til å implementere real-time varsler med Redis.

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

Send Real-time varsel

Når du trenger å sende et real-time varsel, bruk det event du nettopp opprettet i en kontroller eller tjenesteleverandør.

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

Håndtere Real-time varsling på klienten

Til slutt, håndter real-time varslingen på klienten ved å bruke JavaScript og Laravel Echo. Sørg for at du har installert og konfigurert Laravel Echo for applikasjonen din.

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

 

Konklusjon

Integrerer Redis og Laravel lar deg enkelt distribuere real-time varsler i nettapplikasjonen din. Når det kommer et nytt varsel, vil applikasjonen sende det gjennom Redis, og klienten vil motta varselet umiddelbart uten å måtte oppdatere siden. Dette forbedrer brukeropplevelsen og forbedrer applikasjonens interaktivitet.