Real-time Obavijesti s Laravel i Redis

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.