/ws (SockJS 또는 Native WebSocket)/app (Client → Server)/topic (브로드캐스트), /queue (개인 메시지)| 이벤트명 | 경로 | Payload | 역할 |
|---|---|---|---|
| chat-send | /app/interview/{interviewRequestId}/chat-send |
{ "type": "USER", "message": "string" } |
채팅 메시지 전송 |
| joined | /app/interview/{interviewRequestId}/joined |
(없음) | 방 참여 로깅 |
| 이벤트명 | 경로 | 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" |
면접 상태 업데이트 |
| 이벤트명 | 경로 | Payload | 역할 |
|---|---|---|---|
| tail-questions | /user/queue/interviewRoom |
{ "tailQuestions": ["string"] } |
면접관에게 꼬리 질문 선택지 제공 |
| error | /user/queue/interviewRoom |
"string" |
에러 메시지 |
| 이벤트명 | 경로 | Payload | 역할 |
|---|---|---|---|
| start | /app/interview/start |
(없음) | 면접 시작 |
| end | /app/interview/end |
(없음) | 면접 종료 |
| 이벤트명 | 경로 | 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 후보 전송 |