Skip to content

[Feature] #1 채팅 소켓 #64

@youkm1

Description

@youkm1

배경 및 필요성

우선 이미지는 제외한 텍스트로만 할까요..? 우선 WebSocket은 AbstractWebSocketHandler 넣어서 이미지와 텍스트 모두 처리할수있게끔만 했습니다.

이미 구현된 사항

  • WebSocket 연결 설정 (SocketConfig)
  • 기본 채팅 메시지 핸들러 (ChatWebSocketHandler)

서버 남은 작업

1. 의존성 추가

  • Jackson 의존성 확인 (객체 <-> JSON 변환용)

2. 데이터 모델 구현

  • ChatMessage Entity 클래스 생성
    • 메시지 ID, 발신자, 내용, 타임스탬프, 채팅방 ID 등 필드 추가
  • ChatRoom Entity 클래스 생성

3. 데이터 접근 계층 구현

  • ChatMessageRepository 인터페이스 생성
  • 필요한 쿼리 메소드 추가 (채팅 이력 조회 등)

4. 서비스 계층 구현

  • ChatService 클래스 생성
  • 메시지 저장, 조회 기능 구현

5. REST API 컨트롤러 구현

  • ChatController 클래스 생성
  • 상대방과 채팅 시작하기 엔드포인트 추가 (/chat/{user_id})
  • 채팅 세션 상태 변경, 읽음, 전송 완료 등등 PATCH
  • 나의 채팅 이력 조회 엔드포인트 추가 (/chat/rooms})
  • 최근 메시지 조회 엔드포인트 추가 (/chat/recent/{roomId})

채팅 이력 조회: 사용자가 특정 채팅방에 들어갔을 때, 처음에는 최근 50개의 메시지를 보여주고, 사용자가 스크롤을 올리면 그 이전 메시지를 추가로 가져옴
최근 메시지 조회: 메인 화면에 채팅방 목록을 표시할 때, 각 채팅방마다 가장 최근 메시지 1개만 보여줌 (미리보기)

6. 추가 기능 구현

  • 메시지 읽음 확인 기능
  • 사용자 상태 관리 (온라인/오프라인)
  • 파일/이미지 첨부 기능
  • 알림 기능 (수진양에게..)

Metadata

Metadata

Assignees

Labels

Feature새로운 기능

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions