Real-time Las notificaciones son una característica común en las aplicaciones web para proporcionar alertas y actualizaciones instantáneas a los usuarios sin necesidad de actualizar la página. En Laravel, puede integrarse fácilmente Redis para implementar real-time notificaciones de manera eficiente. Redis se usará como una cola para entregar notificaciones del servidor al cliente al instante.
Instalación Redis y Laravel
Para comenzar, instálelo Redis en su servidor e instale el predis/predis
paquete a Laravel través de Composer.
composer require predis/predis
Integración Real-time de notificaciones
Configurar cola en Laravel
Primero, configure la cola Laravel agregando la Redis información al .env
archivo.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Crear un Event
Crea una event entrada Laravel para enviar real-time notificaciones.
php artisan make:event NewNotificationEvent
Luego, abra el app/Events/NewNotificationEvent.php
archivo y personalice el event contenido.
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');
}
}
Configurar Broadcast Driver
Abra el config/broadcasting.php
archivo y use el redis
controlador para implementar real-time notificaciones con Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Enviar Real-time notificación
Cuando necesite enviar una real-time notificación, use la event que acaba de crear en un controlador o proveedor de servicios.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Manejar Real-time notificación en el cliente
Finalmente, maneje la real-time notificación en el cliente usando JavaScript y Laravel Echo. Asegúrese de haber instalado y configurado Laravel Echo para su aplicación.
// 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);
});
Conclusión
La integración Redis y Laravel le permite implementar fácilmente real-time notificaciones en su aplicación web. Cuando haya una nueva notificación, la aplicación la enviará a través de Redis, y el cliente recibirá la notificación al instante sin necesidad de actualizar la página. Esto mejora la experiencia del usuario y mejora la interactividad de la aplicación.