Skip to content

[FIX] 채팅 서버 연동 — mock 제거 및 REST/WebSocket 실시간 연결 #17

Description

@ydking0911

목적

  • Chat.jsx와 Details.jsx의 모든 mock 데이터를 제거하고, 이미 구현된 서버 REST/STOMP 기능에 연결.
  • unreadCount는 프론트에서 계산하지 않는 방식으로, 서버 값을 그대로 표시하고 WebSocket 읽음 수신 시에만 미러링.

작업 목록

  • 의존성 추가: @stomp/stompjs, sockjs-client, vitest
  • unreadSync.js 순수 함수 TDD (서버 decreaseUnreadCount 미러링 규칙)
  • chat.js REST API 레이어 TDD (6종: loadMyChatRooms, loadChatMessages, markChatRoomRead, leaveChatRoom, getChatRoomMembers, getOrCreateDirectChatRoom)
  • chatSocket.js STOMP 싱글톤 (SockJS /ws, 쿠키 인증, connect/subscribe/publish/disconnect)
  • auth.js에 getCachedUserNo() 헬퍼 추가
  • routes.jsx — /chat/group/:chatRoomNo, /chat/dm/:chatRoomNo 파라미터화
  • ChatListScreen — mock 제거, GET /api/chat/rooms 연동, unreadCount 뱃지 서버 값
  • ChatComposer — 첨부(이미지/파일) UI 전체 제거, 텍스트 전용
  • ChatDetailScreen — REST 메시지 로드 + STOMP 실시간 수신/전송 + 읽음 처리 + SYSTEM 메시지 중앙 회색 렌더
  • ChatDMScreen — 동일 흐름, getOrCreateDirectChatRoom 진입점 핸들러 연결
  • ChatNotificationGate — 전역 /user/queue/notification 구독 (ROOM_DELETED / KICKED_FROM_ROOM)
  • 최종 검증: 단위 테스트 13건 PASS + 빌드 성공 + E2E 수동 시나리오

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions