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.