Skip to content

Room WebSocket API

Client → Server

방 단계 변경

  • Destination: /app/room/{roomCode}/change-stage
  • PathVariable: roomCode (String)
  • 설명: 방의 현재 단계를 변경합니다. 방장만 호출할 수 있습니다.

Payload: ChangeRoomStageCommand

필드타입설명
eventTypeString이벤트 타입 (NEXT, PREV, SELECT)
stageStringeventTypeSELECT일 경우, 이동할 스테이지 이름 (선택 사항)
json
{
  "eventType": "SELECT",
  "stage": "MANITTO_STAGE"
}

방 참여자 목록 요청

  • Destination: /app/room/{roomCode}/participants
  • PathVariable: roomCode (String)
  • 설명: 현재 방에 있는 모든 참여자 목록을 요청합니다. 방장만 호출할 수 있습니다.

Server → Client

방 단계 변경 구독

  • Topic: /topic/room-stage/{roomId}
  • 설명: 방의 단계(Stage) 변경을 수신합니다.

Payload: RoomStageChangedPayload[]

필드타입설명
statusString응답 상태 ("SUCCESS")
dataObject응답 데이터
data.stageString변경된 스테이지 이름
messageString응답 메시지
json
{
  "status": "SUCCESS",
  "data": {
    "stage": "MANITTO_STAGE"
  },
  "message": "룸 스테이지가 변경되었습니다."
}

방 참여자 목록 구독

  • Topic: /topic/room-participant/{roomId}
  • 설명: participants 요청에 대한 응답 또는 방의 참여자 목록 변경 시 수신합니다.

Payload: RoomParticipantCommand[]

필드타입설명
statusString응답 상태 ("SUCCESS")
dataParticipants[]참여자 목록
messageString응답 메시지

Payload: Participants[]

필드타입설명
data[].idLong사용자 ID
data[].nameString사용자 이름
data[].ageInteger사용자 나이
data[].mbtiTypeStringMBTI 타입
data[].interestsString[]관심사 목록
json
{
  "status": "SUCCESS",
  "data": [
    {
      "id": 1,
      "name": "홍길동",
      "age": 25,
      "mbtiType": "INTJ",
      "interests": [
        "음악",
        "영화"
      ]
    },
    {
      "id": 2,
      "name": "김철수",
      "age": 30,
      "mbtiType": "ENFP",
      "interests": [
        "여행",
        "스포츠"
      ]
    }
  ],
  "message": "룸 참여자 목록을 정상적으로 전송했습니다."
}