웹소켓 각 시점마다
송/수신 가능한 메시지 타입,
STOMP적용 여부,
메시지 송/수신 시 화면 동작,
방 참가부터 일어날 수 있는 각각 case에 대해 송/수신 메시지 등의 정보가 아직 구체화작업이 필요해보입니다.
시나리오나 상황,메시지 마다 id를 붙여서 이야기하면 명확할 것 같습니다.
TYPE | Description |
---|---|
ROOM_SETTING | 방 정보 (방제목, 방 정원) |
GAME_SETTING | 초기 방 설정 |
PLAYER_LIST | 방 참여자 목록 |
CHAT | 일반 채팅 |
RANK_UPDATE | 실시간 순위 변화 |
SYSTEM_NOTICE | 시스템 공지사항 |
QUESTION_START | 문제 시작 정보 |
QUESTION_RESULT | 문제 결과 정보 |
GAME_RESULT | 게임 결과 |
ROOM_SETTING
{
"type": "ROOM_SETTING",
"message": {
"roomName" : "방제목1",
"maxUserCount" : 8,
"locked" : true
}
}
타입없고 message만 존재 - **퀴즈 변경 요청**
{
"message" : {
"quizId" : 1,
}
}
타입없고 message만 존재 - **시간 제한 변경 요청**
{
"message" : {
"timeLimit" : 30
}
}
타입없고 message만 존재 - **라운드 변경 요청**
{
"message" : {
"round" : 60
}
}
GAME_SETTING
{
"type": "GAME_SETTING",
"message": {
"round": 60,
"timeLimit": 30,
"quiz": {
"quizId": 1,
"title": "영화 명대사 퀴즈~",
"description": "무슨 영화게요",
"thumbnailUrl": "/thumbnail/img/img1.jpg",
"numberOfQuestion": 80
}
}
}
PLAYER_LIST
{
"type": "PLAYER_LIST",
"message": {
"host": "alex",
"players": [
{
"nickname": "alex",
"ready": false
},
{
"nickname": "bravo",
"ready": false
}
],
"currentUserCount" : 5
}
}
GAME_START
{
"type": "GAME_START",
"message": {
"questions": [
{
"id": 1,
"question": "I'll be back."
},
{
"id": 2,
"question": "어이가없네~"
},
{
"id": 3,
"question": "Plan C"
}
]
}
}
SYSTEM_NOTICE
{
"type": "SYSTEM_NOTICE",
"message": {
"noticeMessage": "게임이 시작됩니다.",
"timestamp": "2025-07-04T20:16:10Z"
}
}
{
"type" : "SYSTEM_NOTICE",
"message": {
"noticeMessage": "게임이 종료됩니다.",
"timestamp": "2025-07-04T20:30:10Z"
}
}