Real-time Obvestila z Laravel in Redis

Real-time obvestila so običajna funkcija v spletnih aplikacijah za zagotavljanje takojšnjih opozoril in posodobitev uporabnikom brez potrebe po osveževanju strani. V Laravel, lahko preprosto integrirate Redis za real-time učinkovito implementacijo obvestil. Redis bo uporabljen kot čakalna vrsta za takojšnjo dostavo obvestil s strežnika odjemalcu.

Namestitev Redis in Laravel

Če želite začeti, namestite Redis na svoj strežnik in namestite predis/predis paket Laravel prek Composerja.

composer require predis/predis

Integracija Real-time obvestil

Konfigurirajte čakalno vrsto v Laravel

Najprej konfigurirajte čakalno vrsto tako, da v datoteko Laravel dodate informacije. Redis .env

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

Ustvarite Event

Ustvarite event vhod Laravel za pošiljanje real-time obvestil.

php artisan make:event NewNotificationEvent

Nato odprite app/Events/NewNotificationEvent.php datoteko in prilagodite event vsebino.

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

Konfiguriraj Broadcast Driver

Odprite config/broadcasting.php datoteko in uporabite redis gonilnik za implementacijo real-time obvestil z Redis.

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

Pošlji Real-time obvestilo

Ko morate poslati real-time obvestilo, uporabite, ki event ste ga pravkar ustvarili v krmilniku ali ponudniku storitev.

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

Obravnava Real-time obvestila na odjemalcu

Na koncu obdelajte real-time obvestilo na odjemalcu z uporabo JavaScripta in Laravel Echo. Prepričajte se, da ste namestili in konfigurirali Laravel Echo za svojo aplikacijo.

// 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ček

Integracija Redis in Laravel omogoča preprosto uvajanje real-time obvestil v vašo spletno aplikacijo. Ko pride do novega obvestila, ga aplikacija pošlje prek Redis, odjemalec pa obvestilo prejme takoj, ne da bi bilo treba osvežiti stran. To izboljša uporabniško izkušnjo in poveča interaktivnost aplikacije.