데이터베이스와 의 통합은 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, 인스턴트 알림 및 이벤트 추적과 같은 복잡한 실시간 애플리케이션을 유연하고 강력한 방식으로 구축할 수 있습니다.