Nggabungake Laravel WebSocket karo database minangka bagean penting kanggo mbangun aplikasi wektu nyata kaya Chat, kabar cepet, lan pelacakan acara. Kanthi nggabungake WebSocket karo database, kita bisa nyimpen lan ngatur data wektu nyata kanthi efektif. Mangkene carane nggabungake Laravel WebSocket karo database.
Langkah 1: Instal Laravel WebSocket Paket
Pisanan, nginstal lan ngatur laravel-websockets
paket. Gunakake Composer kanggo nginstal paket:
composer require beyondcode/laravel-websockets
Sawise diinstal, sampeyan kudu nerbitake file konfigurasi lan nindakake tugas sing dibutuhake:
php artisan vendor:publish --tag=websockets-config
php artisan migrate
Langkah 2: Nggawe Tabel Database kanggo Pesen
Kita bakal nggawe tabel ing database kanggo nyimpen pesen. Gunakake printah ing ngisor iki kanggo nggawe messages
tabel:
php artisan make:model Message -m
Sawise mbukak printah, sampeyan bakal weruh migration file digawe ing database/migrations
direktori. Bukak migration file lan nemtokake struktur tabel 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');
});
}
Jalanake migration perintah kanggo nggawe tabel ing basis data:
php artisan migrate
Langkah 3: Nangani Kegigihan Pesen liwat WebSocket
Nalika pangguna ngirim pesen, kita kudu nangani lan tetep pesen menyang database. Ing acara sing dikirim pesen, sampeyan bisa nggunakake Laravel Broadcasting kanggo ngirim pesen WebSocket lan nyimpen pesen kasebut ing database.
// 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
Integrasi Laravel WebSocket karo database ngidini sampeyan nyimpen lan ngatur data wektu nyata kanthi efektif. Kanthi nggabungake WebSocket karo database, sampeyan bisa mbangun aplikasi wektu nyata sing rumit kaya Chat, kabar cepet, lan pelacakan acara kanthi fleksibel lan kuat.