データベースとの統合 Laravel WebSocket: リアルタイムのデータ管理

データベースとの統合は、 Laravel WebSocket チャット、インスタント通知、イベント追跡などのリアルタイム アプリケーションを構築する上で重要な部分です。 データベースと組み合わせることで WebSocket 、リアルタイムデータを効果的に保存、管理できます。 Laravel WebSocket ここではデータベースと 統合する方法を説明します。

ステップ 1: Laravel WebSocket パッケージをインストールする

まず、パッケージをインストールして構成します laravel-websockets。 Composer を使用してパッケージをインストールします。

composer require beyondcode/laravel-websockets

インストールしたら、構成ファイルを公開し、必要なタスクを実行する必要があります。

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

ステップ 2: メッセージのデータベース テーブルを作成する

データベースにメッセージを保存するテーブルを作成します。 次のコマンドを使用して messages テーブルを作成します。

php artisan make:model Message -m

コマンドを実行すると、ディレクトリ migration にファイルが作成されたことがわかります database/migrations。 ファイルを開いてテーブル migration の構造を定義します 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');  
    });  
}  

コマンドを実行して migration データベースにテーブルを作成します。

php artisan migrate

ステップ 3: メッセージ永続性の処理 WebSocket

ユーザーがメッセージを送信すると、メッセージを処理してデータベースに保存する必要があります。 メッセージ送信イベントでは、 Laravel ブロードキャストを使用してメッセージを送信し WebSocket 、同時にデータベースにメッセージを保存できます。

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

結論

データベースと統合すると、 Laravel WebSocket リアルタイム データを効果的に保存および管理できます。 データベースと組み合わせることで WebSocket 、チャット、インスタント通知、イベント追跡などの複雑なリアルタイム アプリケーションを柔軟かつ強力な方法で構築できます。