Mengintegrasikan Laravel WebSocket dengan Pangkalan Data: Pengurusan Data Masa Nyata

Penyepaduan Laravel WebSocket dengan pangkalan data ialah bahagian penting dalam membina aplikasi masa nyata seperti Sembang, pemberitahuan segera dan penjejakan acara. Dengan menggabungkan WebSocket dengan pangkalan data, kami boleh menyimpan dan mengurus data masa nyata dengan berkesan. Berikut ialah cara untuk menyepadukan Laravel WebSocket dengan pangkalan data.

Langkah 1: Pasang Laravel WebSocket Pakej

Pertama, pasang dan konfigurasikan laravel-websockets pakej. Gunakan Komposer untuk memasang pakej:

composer require beyondcode/laravel-websockets

Setelah dipasang, anda perlu menerbitkan fail konfigurasi dan melaksanakan tugas yang diperlukan:

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

Langkah 2: Cipta Jadual Pangkalan Data untuk Mesej

Kami akan membuat jadual dalam pangkalan data untuk menyimpan mesej. Gunakan arahan berikut untuk membuat messages jadual:

php artisan make:model Message -m

Selepas menjalankan arahan, anda akan melihat migration fail yang dibuat dalam database/migrations direktori. Buka migration fail dan tentukan struktur jadual 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');  
    });  
}  

Jalankan migration arahan untuk mencipta jadual dalam pangkalan data:

php artisan migrate

Langkah 3: Mengendalikan Kegigihan Mesej melalui WebSocket

Apabila pengguna menghantar mesej, kita perlu mengendalikan dan mengekalkan mesej itu ke dalam pangkalan data. Dalam acara yang dihantar mesej, anda boleh menggunakan Laravel Penyiaran untuk menghantar mesej itu WebSocket dan pada masa yang sama menyimpan mesej dalam pangkalan data.

// 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();  
}  

Kesimpulan

Penyepaduan Laravel WebSocket dengan pangkalan data membolehkan anda menyimpan dan mengurus data masa nyata dengan berkesan. Dengan menggabungkan WebSocket dengan pangkalan data, anda boleh membina aplikasi masa nyata yang kompleks seperti Sembang, pemberitahuan segera dan penjejakan acara dengan cara yang fleksibel dan berkuasa.