Integrointi Laravel WebSocket tietokantaan on tärkeä osa reaaliaikaisten sovellusten, kuten Chatin, välittömien ilmoitusten ja tapahtumien seurantaa, rakentamista. Yhdistämällä WebSocket tietokantaan voimme tehokkaasti tallentaa ja hallita reaaliaikaista tietoa. Näin integroidaan Laravel WebSocket tietokantaan.
Vaihe 1: Asenna Laravel WebSocket paketti
Ensinnäkin, asenna ja määritä paketti laravel-websockets
. Käytä Composeria paketin asentamiseen:
composer require beyondcode/laravel-websockets
Asennuksen jälkeen sinun on julkaistava määritystiedostot ja suoritettava tarvittavat tehtävät:
php artisan vendor:publish --tag=websockets-config
php artisan migrate
Vaihe 2: Luo tietokantataulukko viesteille
Luomme tietokantaan taulukon viestien tallentamista varten. Luo taulukko käyttämällä seuraavaa komentoa messages
:
php artisan make:model Message -m
Kun olet suorittanut komennon, näet migration hakemistoon luodun tiedoston database/migrations
. Avaa migration tiedosto ja määritä taulukon rakenne 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');
});
}
Luo migration taulukko tietokantaan suorittamalla komento:
php artisan migrate
Vaihe 3: Viestin pysyvyyden käsittely kautta WebSocket
Kun käyttäjä lähettää viestin, meidän on käsiteltävä ja säilytettävä viesti tietokantaan. Viestin lähetystapahtumassa voit Laravel lähettää viestin Broadcastingilla WebSocket ja samalla tallentaa viestin tietokantaan.
// 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();
}
Johtopäätös
Integroimalla Laravel WebSocket tietokantaan voit tallentaa ja hallita reaaliaikaisia tietoja tehokkaasti. Yhdistämällä WebSocket tietokantaan voit rakentaa monimutkaisia reaaliaikaisia sovelluksia, kuten Chat, välittömät ilmoitukset ja tapahtumien seuranta joustavalla ja tehokkaalla tavalla.