التكامل Laravel WebSocket مع قاعدة البيانات: إدارة البيانات في الوقت الفعلي

يعد التكامل Laravel WebSocket مع قاعدة البيانات جزءًا مهمًا من بناء تطبيقات في الوقت الفعلي مثل الدردشة والإشعارات الفورية وتتبع الأحداث. من خلال الدمج WebSocket مع قاعدة البيانات ، يمكننا تخزين البيانات في الوقت الفعلي وإدارتها بشكل فعال. إليك كيفية التكامل Laravel WebSocket مع قاعدة بيانات.

الخطوة الأولى: تثبيت Laravel WebSocket الحزمة

أولاً ، قم بتثبيت laravel-websockets الحزمة وتكوينها. استخدم Composer لتثبيت الحزمة:

composer require beyondcode/laravel-websockets

بمجرد التثبيت ، ستحتاج إلى نشر ملفات التكوين وتنفيذ المهام الضرورية:

php artisan vendor:publish --tag=websockets-config  
php artisan migrate  

الخطوة 2: إنشاء جدول قاعدة البيانات للرسائل

سننشئ جدولًا في قاعدة البيانات لتخزين الرسائل. استخدم الأمر التالي لإنشاء الجدول messages:

php artisan make:model Message -m

بعد تشغيل الأمر ، سترى ملفًا migration تم إنشاؤه في database/migrations الدليل. افتح الملف migration وحدد هيكل الجدول messages:

// database/migrations/xxxx_xx_xx_create_messages_table.php  
  
public function up()  
{  
    Schema::create('messages', function(Blueprint $table) {  
        $table->id();  
        $table->unsignedBigInteger('user_id');  
        $table->text('content');  
        $table->timestamps();  
  
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');  
    });  
}  

قم بتشغيل migration الأمر لإنشاء الجدول في قاعدة البيانات:

php artisan migrate

الخطوة 3: معالجة استمرار الرسالة عبر WebSocket

عندما يرسل المستخدم رسالة ، نحتاج إلى معالجة الرسالة واستمرارها في قاعدة البيانات. في حدث إرسال الرسالة ، يمكنك استخدام Laravel البث لإرسال الرسالة WebSocket وحفظ الرسالة في قاعدة البيانات في نفس الوقت.

// app/Events/MessageSent.php  
  
public function broadcastOn()  
{  
    return new Channel('chat');  
}  
  
public function broadcastWith()  
{  
    return [  
        'message' => $this->message,  
        'user' => $this->user,  
    ];  
}  
// app/Listeners/SaveMessage.php  
  
public function handle(MessageSent $event)  
{  
    $message = new Message();  
    $message->user_id = $event->user->id;  
    $message->content = $event->message;  
    $message->save();  
}  

خاتمة

يتيح لك التكامل Laravel WebSocket مع قاعدة البيانات تخزين البيانات في الوقت الفعلي وإدارتها بفعالية. من خلال الدمج WebSocket مع قاعدة البيانات ، يمكنك إنشاء تطبيقات معقدة في الوقت الفعلي مثل الدردشة والإشعارات الفورية وتتبع الأحداث بطريقة مرنة وفعالة.