-
Notifications
You must be signed in to change notification settings - Fork 0
WebSocket Message Protocol
hyoguoo edited this page Apr 1, 2024
·
3 revisions
메시징 전송 프로토콜인 STOMP
를 사용하여 실시간 통신을 위한 규칙을 정의한다.
- 발행:
/publication/*
에 메시지를 발행하여 구독자에게 메시지를 전송-
*
: 발행할 메시지의 종류(본 프로젝트에선 기능에 따라 종류를 구분한다.)
-
- 구독:
/subscription/*
에 메시지를 구독하여 발행된 메시지를 수신-
*
: 구독할 메시지의 채널(본 프로젝트에선roomShortUuid
를 사용하여 채널을 구분한다.)
-
Socket Test Client를 통해 기본 연결 테스트를 수행할 수 있다.
필요한 기능에 맞는 endpoint
에 해당하는 메시지를 전송하여 구독자에게 메시지를 전송한다.
-
enter
: 방 입장 -
quit
: 방 퇴장 -
message
: 메시지 전송 -
ready
: 준비 상태로 변경 -
unready
: 준비 해제 상태로 변경 -
change-host
: 방장 변경(message에 변경 할 member id 전송) -
start-coding
: 문제 풀이 시작 -
end-coding
: 문제 풀이 종료
{
"roomShortUuid": "o5959c5g",
"message": "Hello, World!"
}
요청 시엔 Authorization
헤더에 Bearer Token
을 포함하여 인증을 수행하여 사용자를 식별할 수 있도록 한다.
Publication을 통해 발행 된 메시지는 서버에서 필요한 로직을 처리한 후 구독자에게 전송한다.
발행한 메시지 종류에 따라 type
필드를 통해 구분한다.
-
enter
: member id 방 입장(value = 입장 멤버 닉네임) -
quit
: member id 방 퇴장(value = 퇴장 멤버 닉네임) -
message
: member id 에 의해 메시지 전송 됨(value = 메시지) -
ready
: member id 준비 완료 -
unready
: member id 준비 해제 -
change-host
: member id로 방장 변경 -
start-coding
: member id에 의해 문제 풀이 시작(value = 코드 풀이 종료 시간) -
end-coding
: memberr id에 의해 문제 풀이 종료
{
"memberId": 1,
"type": "message",
"value": "Hello World!",
"timestamp": "2024-03-10T02:14:32.662070"
}