Real-time Benachrichtigungen mit Laravel und Redis

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.