Real-time obavijesti su uobičajena značajka u web aplikacijama za pružanje trenutnih upozorenja i ažuriranja korisnicima bez potrebe za osvježavanjem stranice. U Laravel, možete se jednostavno integrirati Redis za real-time učinkovitu implementaciju obavijesti. Redis koristit će se kao red čekanja za trenutačnu isporuku obavijesti s poslužitelja klijentu.
Instaliranje Redis i Laravel
Za početak instalirajte Redis na svoj poslužitelj i instalirajte predis/predis
paket Laravel putem Composer-a.
composer require predis/predis
Integriranje Real-time obavijesti
Konfigurirajte red čekanja u Laravel
Najprije konfigurirajte red čekanja Laravel dodavanjem Redis informacija u .env
datoteku.
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Stvorite Event
Stvorite event ulaz Laravel za slanje real-time obavijesti.
php artisan make:event NewNotificationEvent
Zatim otvorite datoteku app/Events/NewNotificationEvent.php
i prilagodite event sadržaj.
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');
}
}
Konfigurirati Broadcast Driver
Otvorite config/broadcasting.php
datoteku i koristite redis
upravljački program za implementaciju real-time obavijesti s Redis.
'connections' => [
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
// ...
],
Pošalji Real-time obavijest
Kada trebate poslati real-time obavijest, upotrijebite event upravo kreirani u upravljaču ili davatelju usluga.
use App\Events\NewNotificationEvent;
public function sendNotification()
{
$message = 'You have a new notification!';
event(new NewNotificationEvent($message));
}
Rukovanje Real-time obavijestima na klijentu
Na kraju, obradite real-time obavijest na klijentu koristeći JavaScript i Laravel Echo. Provjerite jeste li instalirali i konfigurirali Laravel Echo za svoju aplikaciju.
// 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);
});
Zaključak
Integracija Redis i Laravel omogućuje vam jednostavno postavljanje real-time obavijesti u vašoj web aplikaciji. Kada postoji nova obavijest, aplikacija će je poslati putem Redis, a klijent će primiti obavijest trenutno bez potrebe za osvježavanjem stranice. Time se poboljšava korisničko iskustvo i povećava interaktivnost aplikacije.