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.