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.