Real-time Oznámení s Laravel a Redis

Real-time upozornění jsou běžnou funkcí webových aplikací, která uživatelům poskytují okamžitá upozornění a aktualizace bez nutnosti obnovovat stránku. V aplikaci Laravel se můžete snadno integrovat a efektivně Redis implementovat real-time oznámení. Redis bude použit jako fronta k okamžitému doručení oznámení ze serveru klientovi.

Instalace Redis a Laravel

Chcete-li začít, nainstalujte Redis na svůj server a nainstalujte predis/predis balíček Laravel přes Composer.

composer require predis/predis

Integrace Real-time oznámení

Konfigurovat frontu v Laravel

Nejprve nakonfigurujte frontu Laravel přidáním Redis informací do .env souboru.

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

Vytvořit Event

Chcete-li odesílat upozornění, vytvořte si event vstup. Laravel real-time

php artisan make:event NewNotificationEvent

Poté app/Events/NewNotificationEvent.php soubor otevřete a upravte event obsah.

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

Konfigurovat Broadcast Driver

Otevřete config/broadcasting.php soubor a použijte redis ovladač k implementaci real-time upozornění pomocí Redis.

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

Odeslat Real-time oznámení

Pokud potřebujete odeslat real-time oznámení, použijte to, event které jste právě vytvořili v ovladači nebo poskytovateli služeb.

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

Zpracovat Real-time oznámení na klientovi

Nakonec zpracujte real-time oznámení na klientovi pomocí JavaScriptu a Laravel Echo. Ujistěte se, že jste nainstalovali a nakonfigurovali Laravel Echo pro vaši aplikaci.

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

 

Závěr

Integrace Redis a Laravel umožňuje vám snadno nasadit real-time oznámení ve vaší webové aplikaci. Když dojde k novému upozornění, aplikace jej odešle prostřednictvím Redis a klient obdrží upozornění okamžitě, aniž by musel stránku obnovovat. To zlepšuje uživatelský zážitek a zvyšuje interaktivitu aplikace.