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.