Real-time الإخطارات مع Laravel و Redis

Real-time الإخطارات هي ميزة شائعة في تطبيقات الويب لتقديم تنبيهات وتحديثات فورية للمستخدمين دون الحاجة إلى تحديث الصفحة. في Laravel ، يمكنك الدمج بسهولة Redis لتنفيذ real-time الإشعارات بكفاءة. Redis سيتم استخدامها كقائمة انتظار لتسليم الإخطارات من الخادم إلى العميل على الفور.

تركيب Redis و Laravel

للبدء ، قم بالتثبيت Redis على الخادم الخاص بك وتثبيت predis/predis الحزمة Laravel عبر Composer.

composer require predis/predis

دمج Real-time الإخطارات

تكوين قائمة الانتظار في Laravel

أولاً ، قم بتكوين قائمة الانتظار Laravel عن طريق إضافة Redis المعلومات إلى .env الملف.

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

يخترع Event

إنشاء event في Laravel لإرسال real-time الإخطارات.

php artisan make:event NewNotificationEvent

ثم افتح الملف app/Events/NewNotificationEvent.php وخصص event المحتوى.

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

تهيئة Broadcast Driver

افتح الملف config/broadcasting.php واستخدم redis برنامج التشغيل لتنفيذ real-time الإخطارات باستخدام Redis.

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

إرسال Real-time الإخطار

عندما تحتاج إلى إرسال real-time إشعار ، استخدم ما event أنشأته للتو في وحدة تحكم أو مزود خدمة.

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

التعامل مع Real-time الإخطار على العميل

أخيرًا ، تعامل مع real-time الإشعار على العميل باستخدام JavaScript و Laravel Echo. تأكد من أنك قمت بتثبيت وتكوين Laravel Echo لتطبيقك.

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

 

خاتمة

التكامل Redis ويسمح Laravel لك بنشر real-time الإشعارات بسهولة في تطبيق الويب الخاص بك. عندما يكون هناك إشعار جديد ، سيرسله التطبيق من خلاله Redis ، وسيتلقى العميل الإشعار على الفور دون الحاجة إلى تحديث الصفحة. هذا يحسن تجربة المستخدم ويعزز تفاعل التطبيق.