Integrálás Laravel WebSocket az adatbázisba: Valós idejű adatkezelés

Az adatbázisba való integráció Laravel WebSocket kulcsfontosságú része a valós idejű alkalmazások, például a Chat, az azonnali értesítések és az eseménykövetés létrehozásának. WebSocket Adatbázissal kombinálva hatékonyan tárolhatjuk és kezelhetjük a valós idejű adatokat. Az alábbiakban bemutatjuk, hogyan integrálható Laravel WebSocket az adatbázissal.

1. lépés: Telepítse Laravel WebSocket a csomagot

Először telepítse és konfigurálja a laravel-websockets csomagot. A csomag telepítéséhez használja a Composert:

composer require beyondcode/laravel-websockets

A telepítés után közzé kell tennie a konfigurációs fájlokat, és végre kell hajtania a szükséges feladatokat:

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

2. lépés: Adatbázistábla létrehozása az üzenetekhez

Létrehozunk egy táblázatot az adatbázisban az üzenetek tárolására. A táblázat létrehozásához használja a következő parancsot messages:

php artisan make:model Message -m

A parancs futtatása után megjelenik migration a könyvtárban létrehozott fájl database/migrations. Nyissa meg a migration fájlt, és határozza meg a messages táblázat szerkezetét:

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

Futtassa a migration parancsot a táblázat létrehozásához az adatbázisban:

php artisan migrate

3. lépés: Az üzenetmegmaradás kezelése a következőn keresztül WebSocket

Amikor egy felhasználó üzenetet küld, kezelnünk kell és meg kell őriznünk az üzenetet az adatbázisban. Az üzenet elküldése esetén Laravel a Broadcasting segítségével elküldheti az üzenetet, WebSocket és ezzel egyidejűleg elmentheti az üzenetet az adatbázisba.

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

Következtetés

Az adatbázissal való integráció Laravel WebSocket lehetővé teszi a valós idejű adatok hatékony tárolását és kezelését. Egy adatbázissal kombinálva WebSocket összetett, valós idejű alkalmazásokat hozhat létre, mint például a Chat, az azonnali értesítések és az eseménykövetés rugalmas és hatékony módon.