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 ، وسيتلقى العميل الإشعار على الفور دون الحاجة إلى تحديث الصفحة. هذا يحسن تجربة المستخدم ويعزز تفاعل التطبيق.