يعد التكامل 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 مع قاعدة البيانات ، يمكنك إنشاء تطبيقات معقدة في الوقت الفعلي مثل الدردشة والإشعارات الفورية وتتبع الأحداث بطريقة مرنة وفعالة.