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.