Real-time Njoftimet me Laravel dhe Redis

Real-time njoftimet janë një veçori e zakonshme në aplikacionet në ueb për të ofruar sinjalizime dhe përditësime të menjëhershme për përdoruesit pa pasur nevojë të rifreskoni faqen. Në Laravel, mund të integroheni lehtësisht Redis për të zbatuar real-time njoftimet në mënyrë efikase. Redis do të përdoret si një radhë për të dërguar njoftime nga serveri te klienti në çast.

Instalimi Redis dhe Laravel

Për të filluar, instaloni Redis në serverin tuaj dhe instaloni predis/predis paketën Laravel përmes Composer.

composer require predis/predis

Integrimi i Real-time njoftimeve

Konfiguro radhën brenda Laravel

Së pari, konfiguroni radhën Laravel duke shtuar Redis informacionin në .env skedar.

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

Krijo një Event

Krijo një event in Laravel për të dërguar real-time njoftime.

php artisan make:event NewNotificationEvent

Pastaj, hapni app/Events/NewNotificationEvent.php skedarin dhe personalizoni event përmbajtjen.

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

Konfiguro Broadcast Driver

Hapni config/broadcasting.php skedarin dhe përdorni redis drejtuesin për të zbatuar real-time njoftimet me Redis.

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

Dërgo Real-time Njoftim

Kur duhet të dërgoni një real-time njoftim, përdorni atë event që sapo keni krijuar në një kontrollues ose ofrues shërbimi.

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

Trajtoni Real-time njoftimin për klientin

Më në fund, trajtoni real-time njoftimin për klientin duke përdorur JavaScript dhe Laravel Echo. Sigurohuni që keni instaluar dhe konfiguruar Laravel Echo për aplikacionin tuaj.

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

 

konkluzioni

Integrimi Redis dhe Laravel ju lejon të vendosni lehtësisht real-time njoftimet në aplikacionin tuaj të internetit. Kur ka një njoftim të ri, aplikacioni do ta dërgojë atë përmes Redis, dhe klienti do ta marrë njoftimin në çast pa pasur nevojë të rifreskojë faqen. Kjo përmirëson përvojën e përdoruesit dhe rrit ndërveprimin e aplikacionit.