Real-time Pranešimai su Laravel ir Redis

Real-time pranešimai yra įprasta žiniatinklio programų funkcija, suteikianti vartotojams momentinius įspėjimus ir atnaujinimus, nereikia atnaujinti puslapio. Naudodami Laravel, galite lengvai integruoti, Redis kad efektyviai įgyvendintumėte real-time pranešimus. Redis bus naudojama kaip eilė pranešimams iš serverio klientui nedelsiant pristatyti.

Diegimas Redis ir Laravel

Norėdami pradėti, įdiekite Redis savo serveryje ir įdiekite predis/predis paketą Laravel per Composer.

composer require predis/predis

Real-time Pranešimų integravimas

Konfigūruoti eilę Laravel

Pirmiausia sukonfigūruokite eilę Laravel įtraukdami Redis informaciją į .env failą.

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

Sukurti an Event

Sukurkite event įvestį Laravel, kad galėtumėte siųsti real-time pranešimus.

php artisan make:event NewNotificationEvent

Tada atidarykite app/Events/NewNotificationEvent.php failą ir tinkinkite event turinį.

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

Konfigūruoti Broadcast Driver

Atidarykite config/broadcasting.php failą ir naudokite redis tvarkyklę, kad įdiegtumėte real-time pranešimus su Redis.

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

Siųsti Real-time pranešimą

Kai reikia išsiųsti real-time pranešimą, naudokite event ką tik sukurtą valdiklį arba paslaugų teikėją.

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

Tvarkykite Real-time pranešimus klientui

Galiausiai apdorokite real-time kliento pranešimą naudodami „JavaScript“ ir Laravel „Echo“. Įsitikinkite, kad įdiegėte ir sukonfigūravote Laravel „Echo“ savo programai.

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

 

Išvada

Integruoja Redis ir Laravel leidžia lengvai įdiegti real-time pranešimus žiniatinklio programoje. Kai bus naujas pranešimas, programa jį išsiųs per Redis, o klientas gaus pranešimą iškart, nereikės atnaujinti puslapio. Tai pagerina vartotojo patirtį ir padidina programos interaktyvumą.