Laravel 1 دقيقة للقراءة 750 مشاهدات

كيفية تطبيق الإشعارات الفورية مع Laravel Reverb

ابنِ أنظمة إشعارات فورية باستخدام خادم WebSocket في Laravel Reverb مع واجهات Vue.js أو React.

Real-time notifications

ما هو Laravel Reverb؟

‏Laravel Reverb هو خادم WebSocket رسمي من الطرف الأول يتيح الميزات الفورية دون خدمات طرف ثالث.

الخطوة 1: تثبيت Reverb

composer require laravel/reverb
php artisan reverb:install

الخطوة 2: إعداد البيئة

# .env
BROADCAST_DRIVER=reverb
REVERB_APP_ID=my-app
REVERB_APP_KEY=my-key
REVERB_APP_SECRET=my-secret
REVERB_HOST=localhost
REVERB_PORT=8080

الخطوة 3: إنشاء حدث إشعار

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class NewNotification implements ShouldBroadcast
{
    public function __construct(
        public string $message,
        public int $userId
    ) {}

    public function broadcastOn(): Channel
    {
        return new Channel("user.{$this->userId}");
    }

    public function broadcastAs(): string
    {
        return 'notification';
    }
}

الخطوة 4: إطلاق الإشعار

// In your controller
event(new NewNotification('You have a new message!', $user->id));

الخطوة 5: إعداد الواجهة الأمامية (Vue/React)

npm install laravel-echo pusher-js
// echo.js
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';

window.Pusher = Pusher;

window.Echo = new Echo({
    broadcaster: 'reverb',
    key: import.meta.env.VITE_REVERB_APP_KEY,
    wsHost: import.meta.env.VITE_REVERB_HOST,
    wsPort: import.meta.env.VITE_REVERB_PORT,
    forceTLS: false,
    enabledTransports: ['ws', 'wss'],
});

// Listen for notifications
Echo.channel(`user.${userId}`)
    .listen('.notification', (e) => {
        alert(e.message);
    });

الخطوة 6: تشغيل خادم Reverb

php artisan reverb:start

الآن يتلقّى مستخدموك إشعارات فورية!

مشاركة هذه المقالة:
ES
كتبه

Edrees Salih

مهندس برمجيات متكامل يتمتع بخبرة 9 سنوات. شغوف ببناء حلول قابلة للتطوير ومشاركة المعرفة مع مجتمع المطورين.

عرض الملف الشخصي

التعليقات (0)

اترك تعليقًا

لن يتم نشر بريدك الإلكتروني.

لا توجد تعليقات بعد. كن أول من يشارك أفكاره!

مقالات ذات صلة

مقالات ذات صلة

هل تحتاج مساعدة في مشروعك؟

احجز استشارة مجانية لمدة 30 دقيقة لمناقشة تحدياتك التقنية واستكشاف الحلول معًا.