REST

POST /api/chat/rooms/create 새로운 채팅방 생성

GET /api/chat/rooms 채팅방 목록 조회

GET /api/chat/rooms/{roomId}/messages 메시지 목록 조회

GET /api/chat/rooms/{roomId}/messages/opponent-last-read 상대가 마지막으로 읽은 시간 조회

STOMP on websocket

STOMP /app/chat/send

STOMP /app/chat/mark-read

이벤트 이름 이벤트 type 요청 경로 구독 경로 정의 비고 상세 (payload)
채팅 전송 /app/chat/send 일반 채팅 보내기 (C → S) roomId, content
메시지 수신 알림 message.received /queue 일반 채팅 알림 senderId, nickname, message
메시지 수신 message.received /topic/chat/rooms/:roomid 일반 채팅 받기 (S → C) 1. 상대가 보낸 것2. 내가 보낸 것3. 시스템 메시지 senderId, nickname, content,createdAt
메시지 읽음 전송 /app/chat/mark-read 일반 채팅 내가 모두 읽음(C → S) message.received를 본인이 읽었으면 이벤트 발행 roomId
메시지 읽음 수신 read-receipt /topic/chat/rooms/:roomid 일반 채팅 상대가 읽음 (S → C) 상대가 읽었으면 이벤트 수신메시지 보낸 이후 해당 이벤트 없으면 안읽음 상태 readerId,lastReadAt