Integrimi Laravel WebSocket me bazën e të dhënave: Menaxhimi i të dhënave në kohë reale

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.