Real-time Meldingen met Laravel en Redis

Real-time meldingen zijn een veelgebruikte functie in webapplicaties om gebruikers onmiddellijke waarschuwingen en updates te bieden zonder de pagina te hoeven vernieuwen. In Laravel kunt u eenvoudig integreren Redis om notificaties efficiënt te implementeren real-time. Redis zal worden gebruikt als een wachtrij om meldingen van de server direct naar de client te sturen.

Installeren Redis en Laravel

Installeer om te beginnen Redis op uw server en installeer het predis/predis pakket Laravel via Composer.

composer require predis/predis

Real-time Meldingen integreren

Configureer Wachtrij in Laravel

Configureer eerst de wachtrij Laravel door de Redis informatie aan het .env bestand toe te voegen.

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

Creëer een Event

Maak een event in Laravel om meldingen te verzenden real-time.

php artisan make:event NewNotificationEvent

Open vervolgens het app/Events/NewNotificationEvent.php bestand en pas de event inhoud aan.

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

Configureren Broadcast Driver

Open het config/broadcasting.php bestand en gebruik de redis driver om real-time notificaties te implementeren met Redis.

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

Real-time Melding verzenden

real-time Wanneer u een melding moet verzenden, gebruikt event u de zojuist aangemaakte in een controller of serviceprovider.

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

Real-time Melding op de klant afhandelen

Verwerk ten slotte de real-time melding op de client met behulp van JavaScript en Laravel Echo. Zorg ervoor dat u Laravel Echo voor uw toepassing hebt geïnstalleerd en geconfigureerd.

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

 

Conclusie

Integratie Redis en Laravel stelt u in staat om eenvoudig real-time notificaties in uw webapplicatie te implementeren. Wanneer er een nieuwe melding is, stuurt de applicatie deze door Redis en ontvangt de klant de melding direct zonder de pagina te hoeven vernieuwen. Dit verbetert de gebruikerservaring en verbetert de interactiviteit van de applicatie.