การผสานรวม Laravel WebSocket กับฐานข้อมูล: การจัดการข้อมูลแบบเรียลไทม์

การผสานรวม Laravel WebSocket กับฐานข้อมูลเป็นส่วนสำคัญในการสร้างแอปพลิเคชันแบบเรียลไทม์ เช่น แชท การแจ้งเตือนทันที และการติดตามเหตุการณ์ เมื่อรวมเข้า WebSocket กับฐานข้อมูล เราสามารถจัดเก็บและจัดการข้อมูลแบบเรียลไทม์ได้อย่างมีประสิทธิภาพ ต่อไปนี้คือวิธีรวมเข้า Laravel WebSocket กับฐานข้อมูล

ขั้นตอนที่ 1: ติดตั้ง Laravel WebSocket แพ็คเกจ

ประการแรก ติดตั้งและกำหนดค่า laravel-websockets แพ็คเกจ ใช้นักแต่งเพลงเพื่อติดตั้งแพ็คเกจ:

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 กับฐานข้อมูล คุณจะสามารถสร้างแอปพลิเคชันตามเวลาจริงที่ซับซ้อน เช่น แชท การแจ้งเตือนทันที และการติดตามเหตุการณ์ได้อย่างยืดหยุ่นและมีประสิทธิภาพ