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.