Real-time le notifiche sono una caratteristica comune nelle applicazioni Web per fornire avvisi istantanei e aggiornamenti agli utenti senza la necessità di aggiornare la pagina. In Laravel, puoi integrare facilmente Redis per implementare real-time le notifiche in modo efficiente. Redis verrà utilizzato come coda per consegnare istantaneamente le notifiche dal server al client.
Installazione Redis e Laravel
Per iniziare, installa Redis sul tuo server e installa il predis/predis
pacchetto Laravel tramite Composer.
composer require predis/predis
Integrazione Real-time delle notifiche
Configura coda in entrata Laravel
Innanzitutto, configura la coda Laravel aggiungendo le Redis informazioni al .env
file.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Creare un Event
Crea un event in Laravel per inviare real-time notifiche.
php artisan make:event NewNotificationEvent
Quindi, apri il app/Events/NewNotificationEvent.php
file e personalizza il event contenuto.
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 Broadcast Driver
Apri il config/broadcasting.php
file e usa il redis
driver per implementare real-time le notifiche con Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Invia Real-time notifica
Quando è necessario inviare una real-time notifica, utilizzare il event appena creato in un controller o fornitore di servizi.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Gestire Real-time la notifica sul client
Infine, gestisci la real-time notifica sul client utilizzando JavaScript ed Laravel Echo. Assicurati di aver installato e configurato Laravel Echo per la tua applicazione.
// 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);
});
Conclusione
L'integrazione Redis e Laravel ti consente di distribuire facilmente real-time le notifiche nella tua applicazione web. Quando c'è una nuova notifica, l'applicazione la invierà tramite Redis e il client riceverà la notifica immediatamente senza la necessità di aggiornare la pagina. Ciò migliora l'esperienza dell'utente e migliora l'interattività dell'applicazione.