Integrace Laravel WebSocket s databází je klíčovou součástí vytváření aplikací v reálném čase, jako je chat, okamžitá upozornění a sledování událostí. Kombinací WebSocket s databází můžeme efektivně ukládat a spravovat data v reálném čase. Zde je návod, jak se integrovat Laravel WebSocket s databází.
Krok 1: Nainstalujte Laravel WebSocket balíček
Nejprve nainstalujte a nakonfigurujte laravel-websockets
balíček. K instalaci balíčku použijte Composer:
composer require beyondcode/laravel-websockets
Po instalaci musíte publikovat konfigurační soubory a provést nezbytné úkoly:
php artisan vendor:publish --tag=websockets-config
php artisan migrate
Krok 2: Vytvořte tabulku databáze pro zprávy
V databázi vytvoříme tabulku pro ukládání zpráv. Pro vytvoření tabulky použijte následující příkaz messages
:
php artisan make:model Message -m
Po spuštění příkazu uvidíte migration soubor vytvořený v database/migrations
adresáři. Otevřete migration soubor a definujte strukturu tabulky 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');
});
}
Spusťte migration příkaz pro vytvoření tabulky v databázi:
php artisan migrate
Krok 3: Zpracování trvalosti zpráv pomocí WebSocket
Když uživatel odešle zprávu, musíme zprávu zpracovat a uložit do databáze. V události message-sent můžete použít Laravel Broadcasting k odeslání zprávy WebSocket a zároveň k uložení zprávy do databáze.
// 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();
}
Závěr
Integrace Laravel WebSocket s databází umožňuje efektivně ukládat a spravovat data v reálném čase. Kombinací WebSocket s databází můžete vytvářet komplexní aplikace v reálném čase, jako je chat, okamžitá upozornění a sledování událostí, flexibilním a výkonným způsobem.