🔴 : 클라이언트 → 게임 서버

🔵 : 게임 서버 → 클라이언트

1. 커넥션 연결

1-1. 게임 서버로 소켓 연결 요청

1-2. 커넥션 연결 성공 메시지 전송

{
  "type": "connection_established",
  "mode": "online",
  "message": "You are now connected!"
}

2. 게임 정보 교환

2-1. 게임 서버로 게임 정보 전송

{
  "type": "game",
  "subtype": "session_info",
  "message": "",
  "data": {
    "battle_mode": 2,
    "total_score": 15,
    "level": 2,
    "color": {
      "paddle": "#FFFFFF",
      "background": "#FFFFFF"
    },
    "headcount": 4,
    "nickname": [
      "wonyang", "jeongmin", "joyoo", "jihylim"
    ]      
  }
}

3. 게임 대진표 정보 전송

3-1. 클라이언트로 게임 대진표 정보 전송

{
  "type": "game",
  "subtype": "tournament_tree"
  "message": "",
  "data": {
    "battle_mode": 2,
    "winner": "wonyang",
    "bracket": [[["wonyang", "jeongmin"], ["joyoo", "jihylim"]], [["wonyang", "PONG !"]], [[""]]]
    }
  }

4. 매치 진행

4-1. 게임 매치 초기화 요청

{
  "type": "game",
  "subtype": "match_init_setting",
  "message": "go!",
  "data": {}
}

4-2. 클라이언트로 매치 초기화 정보 전송

{
  "type": "game",
  "subtype": "match_init_setting"
  "message": "",
  **"match_id": 123,**
  "data": {
	  "battle_mode": 2,
	  "color": {
		  "paddle": "#FFFFFF",
		  "background": "#FFFFFF",
			"ball": "#FFFFFF",
	  }  
	  "ball": {
	    "status": "in",
	    "x": 0.0, 
	    "y": 0.0,
	    "radius": 0.04,
	  },
	  "paddle1": {
	    "x": -2.8, 
	    "y": 0.0,
	    "width": 0.1,
	    "height": 0.5,
	  },
	  "paddle2": {
	    "x": 2.8, 
	    "y": 0.0,
	    "width": 0.1,
	    "height": 0.5,
	  },
	  "nickname": {
	    "player1": "wonyang",
	    "player2": "jeongmin"
	  }   
  },
}