Real-time Notifications avec Laravel et Redis

Real-time les notifications sont une fonctionnalité courante dans les applications Web pour fournir des alertes et des mises à jour instantanées aux utilisateurs sans qu'il soit nécessaire d'actualiser la page. Dans Laravel, vous pouvez facilement les intégrer Redis pour mettre en œuvre real-time efficacement les notifications. Redis sera utilisé comme une file d'attente pour envoyer instantanément les notifications du serveur au client.

Installation Redis et Laravel

Pour commencer, installez Redis sur votre serveur et installez le predis/predis package Laravel via Composer.

composer require predis/predis

Intégration Real-time des notifications

Configurer la file d'attente dans Laravel

Tout d'abord, configurez la file d'attente Laravel en ajoutant les Redis informations au .env fichier.

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

Créé un Event

Créez un event in Laravel pour envoyer real-time des notifications.

php artisan make:event NewNotificationEvent

Ensuite, ouvrez le app/Events/NewNotificationEvent.php fichier et personnalisez le event contenu.

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

Configurer Broadcast Driver

Ouvrez le config/broadcasting.php fichier et utilisez le redis pilote pour implémenter real-time les notifications avec Redis.

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

Envoyer Real-time une notification

Lorsque vous devez envoyer une real-time notification, utilisez le que event vous venez de créer dans un contrôleur ou un fournisseur de services.

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

Gérer Real-time la notification sur le client

Enfin, gérez la real-time notification sur le client en utilisant JavaScript et Laravel Echo. Assurez-vous d'avoir installé et configuré Laravel Echo pour votre application.

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

 

Conclusion

L'intégration Redis et Laravel vous permet de déployer facilement real-time des notifications dans votre application Web. Lorsqu'il y a une nouvelle notification, l'application l'enverra via Redis, et le client recevra la notification instantanément sans avoir besoin de rafraîchir la page. Cela améliore l'expérience utilisateur et renforce l'interactivité de l'application.