Skip to content

[FIX] 캐치마인드 게임 라운드 전환 및 WebSocket 이벤트 처리 개선 #165

Description

@DDINGJOO

문제

  • 타이머가 0초가 되어도 다음 라운드로 넘어가지 않음
  • 정답을 맞춰도 다음 라운드로 전환되지 않음
  • WebSocket 메시지의 중첩된 데이터 구조가 제대로 파싱되지 않음
  • 연결되지 않은 상태에서 메시지 전송 시 불필요한 에러 표시

해결

  • WebSocket 이벤트 핸들러에서 data.data || data 패턴으로 중첩 데이터 처리
  • 메시지 타입 대소문자 모두 처리 (round_end, ROUND_END 등)
  • 타이머 자동 스킵 시 stale closure 문제 해결 (useRef 사용)
  • 연결 안 된 상태에서 에러 대신 조용히 실패 처리
  • 게임 중 채팅 메시지 비눗방울 애니메이션 추가

변경 파일

  • useChatWebSocket.js: 모든 게임 이벤트 핸들러 수정
  • chatWebSocketService.js: 메시지 타입 대소문자 처리
  • GameModePanel.jsx: 타이머 ref 사용, 비눗방울 애니메이션
  • ChatRoomPage.jsx: 새로운 props 전달
  • ChatRoomModal.jsx: 새로운 props 전달

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No 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