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.