WebSocket 연결 정보


Interview Room 이벤트 명세

Client → Server 이벤트

이벤트명 경로 Payload 역할
chat-send /app/interview/{interviewRequestId}/chat-send { "type": "USER", "message": "string" } 채팅 메시지 전송
joined /app/interview/{interviewRequestId}/joined (없음) 방 참여 로깅

Server → Client 이벤트 (브로드캐스트)

이벤트명 경로 Payload 역할
chat-received /topic/interview/{interviewRequestId} InterviewRoomChatMessage 채팅 메시지 수신 (타입별: USER/SYSTEM/SYSTEM_QUESTION/SYSTEM_ANSWER)
user-joined /topic/interview/{interviewRequestId} null 사용자 입장 알림
user-left /topic/interview/{interviewRequestId} null 사용자 퇴장 알림
answer /topic/interview/{interviewRequestId} { "answer": "string" } 면접자의 답변 (STT 변환 완료)
question /topic/interview/{interviewRequestId} { "question": "string" } 면접관의 질문 (STT 변환 완료)
status-update /topic/interview/{interviewRequestId} "string" 면접 상태 업데이트

Server → Client 이벤트 (개인 메시지)

이벤트명 경로 Payload 역할
tail-questions /user/queue/interviewRoom { "tailQuestions": ["string"] } 면접관에게 꼬리 질문 선택지 제공
error /user/queue/interviewRoom "string" 에러 메시지

Interview 이벤트 명세

Client → Server 이벤트

이벤트명 경로 Payload 역할
start /app/interview/start (없음) 면접 시작
end /app/interview/end (없음) 면접 종료

WebRTC 이벤트 명세

Client → Server 이벤트

이벤트명 경로 Payload 역할
webrtc-offer /app/webrtc/offer { "sdp": "string", "type": "offer" } WebRTC Offer 전송
webrtc-answer /app/webrtc/answer { "sdp": "string", "type": "answer" } WebRTC Answer 전송
webrtc-ice /app/webrtc/ice { "candidate": "string", "sdpMid": "string", "sdpMLineIndex": number } ICE 후보 전송