Integrimi Laravel WebSocket me një bazë të dhënash është një pjesë thelbësore e ndërtimit të aplikacioneve në kohë reale si Chat, njoftimet e menjëhershme dhe gjurmimi i ngjarjeve. Duke u kombinuar WebSocket me një bazë të dhënash, ne mund të ruajmë dhe menaxhojmë në mënyrë efektive të dhënat në kohë reale. Ja se si të integroheni Laravel WebSocket me një bazë të dhënash.
Hapi 1: Instaloni Laravel WebSocket paketën
Së pari, instaloni dhe konfiguroni laravel-websockets
paketën. Përdorni Composer për të instaluar paketën:
composer require beyondcode/laravel-websockets
Pasi të instalohet, duhet të publikoni skedarët e konfigurimit dhe të kryeni detyrat e nevojshme:
php artisan vendor:publish --tag=websockets-config
php artisan migrate
Hapi 2: Krijoni tabelën e bazës së të dhënave për mesazhe
Ne do të krijojmë një tabelë në bazën e të dhënave për të ruajtur mesazhet. Përdorni komandën e mëposhtme për të krijuar messages
tabelën:
php artisan make:model Message -m
Pas ekzekutimit të komandës, do të shihni një migration skedar të krijuar në database/migrations
drejtori. Hapni migration skedarin dhe përcaktoni strukturën e messages
tabelës:
// 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');
});
}
Ekzekutoni migration komandën për të krijuar tabelën në bazën e të dhënave:
php artisan migrate
Hapi 3: Trajtimi i qëndrueshmërisë së mesazhit nëpërmjet WebSocket
Kur një përdorues dërgon një mesazh, ne duhet ta trajtojmë dhe ta ruajmë mesazhin në bazën e të dhënave. Në ngjarjen e dërguar nga mesazhi, mund të përdorni Laravel Broadcasting për të dërguar mesazhin WebSocket dhe njëkohësisht për ta ruajtur mesazhin në bazën e të dhënave.
// 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();
}
konkluzioni
Integrimi Laravel WebSocket me një bazë të dhënash ju lejon të ruani dhe menaxhoni në mënyrë efektive të dhënat në kohë reale. Duke u kombinuar WebSocket me një bazë të dhënash, mund të ndërtoni aplikacione komplekse në kohë reale si Chat, njoftime të menjëhershme dhe gjurmim të ngjarjeve në një mënyrë fleksibël dhe të fuqishme.