Real-time Benachrichtigungen sind eine häufige Funktion in Webanwendungen, um Benutzern sofortige Warnungen und Aktualisierungen bereitzustellen, ohne dass die Seite aktualisiert werden muss. In Laravel können Sie problemlos integrieren Redis, um Benachrichtigungen effizient umzusetzen real-time. Redis wird als Warteschlange verwendet, um Benachrichtigungen vom Server sofort an den Client zu übermitteln.
Installieren Redis und Laravel
Um zu beginnen, installieren Sie es Redis auf Ihrem Server und installieren Sie das predis/predis
Paket Laravel über Composer.
composer require predis/predis
Real-time Benachrichtigungen integrieren
Konfigurieren Sie die Warteschlange in Laravel
Konfigurieren Sie zunächst die Warteschlange, indem Sie die Informationen zur Datei Laravel hinzufügen. Redis .env
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Erstelle ein Event
Erstellen Sie einen event Eingang, Laravel um real-time Benachrichtigungen zu senden.
php artisan make:event NewNotificationEvent
Öffnen Sie dann die app/Events/NewNotificationEvent.php
Datei und passen Sie den event Inhalt an.
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');
}
}
Konfigurieren Broadcast Driver
Öffnen Sie die config/broadcasting.php
Datei und verwenden Sie den redis
Treiber, um real-time Benachrichtigungen mit zu implementieren Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Real-time Benachrichtigung senden
real-time Wenn Sie eine Benachrichtigung senden müssen, verwenden Sie die event soeben erstellte Benachrichtigung bei einem Controller oder Dienstanbieter.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Behandeln Sie Real-time die Benachrichtigung auf dem Client
Behandeln Sie abschließend die real-time Benachrichtigung auf dem Client mithilfe von JavaScript und Laravel Echo. Laravel Stellen Sie sicher, dass Sie Echo für Ihre Anwendung installiert und konfiguriert haben .
// 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);
});
Abschluss
Redis Durch die Integration können Sie Benachrichtigungen einfach in Ihrer Webanwendung Laravel bereitstellen. real-time Wenn eine neue Benachrichtigung vorliegt, sendet die Anwendung diese über Redis und der Kunde erhält die Benachrichtigung sofort, ohne dass die Seite aktualisiert werden muss. Dies verbessert das Benutzererlebnis und erhöht die Interaktivität der Anwendung.