데이터베이스와 통합 Laravel WebSocket: 실시간 데이터 관리

데이터베이스와 의 통합은 Laravel WebSocket Chat, 인스턴트 알림 및 이벤트 추적과 같은 실시간 애플리케이션을 구축하는 데 중요한 부분입니다. 데이터베이스와 결합하여 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 Broadcasting을 사용하여 메시지를 전송하는 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 Chat, 인스턴트 알림 및 이벤트 추적과 같은 복잡한 실시간 애플리케이션을 유연하고 강력한 방식으로 구축할 수 있습니다.