๐Ÿ”ดย : ํด๋ผ์ด์–ธํŠธ โ†’ ๊ฒŒ์ž„ ์„œ๋ฒ„

๐Ÿ”ตย : ๊ฒŒ์ž„ ์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ

1. ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ

1-1. ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ ์†Œ์ผ“ ์—ฐ๊ฒฐ ์š”์ฒญ

1-2. ์ปค๋„ฅ์…˜ ์—ฐ๊ฒฐ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€ ์ „์†ก

{
  "type": "game",
  "subtype": "connection_established",
  "message": "You are now connected!"
}

2. ๊ฒŒ์ž„ ์ดˆ๊ธฐ ์ •๋ณด ์ „์†ก

2-1. ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ ๊ฒŒ์ž„ ์ดˆ๊ธฐ ์ •๋ณด ์ „์†ก

{
  "type": "game",
  "subtype": "session_info",
  "message": "",
  "data": {
    "battle_mode": 1,
    "total_score": 15,
    "level": 2,
    "color": {
      "paddle": "#FFFFFF",
      "background": "#FFFFFF"
    }
  }
}

2-2. ํด๋ผ์ด์–ธํŠธ๋กœ ๊ฒŒ์ž„ ์ดˆ๊ธฐ ์ •๋ณด ์ „์†ก

{
  "type": "game",
  "subtype": "match_init_setting",
  "message": "",
  "match_id": 123,
  "data": {
    "battle_mode": 1,
    "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"
    }   
  }
}

3. ๊ฒŒ์ž„(๋งค์น˜) ์ง„ํ–‰

3-1. ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ ๋งค์น˜ ์‹œ์ž‘ ์š”์ฒญ ์ „์†ก

{
  "type": "game",
  "subtype": "match_start",
  "message": "go!",
  "match_id": 123,
  "data": {}
}

3-2. ํด๋ผ์ด์–ธํŠธ๋กœ ๊ฒŒ์ž„ ๋งค์น˜ ๋ฐ์ดํ„ฐ ์ „์†ก (1์ดˆ ๋‹น 60๋ฒˆ)

{
  "type": "game",
  "subtype": "match_run"
  "message": "",
  **"match_id": 123,**
  "data": {
	  "battle_mode": 1,
	  "ball": {
	    **"status": "in",**
	    "x": 0.0, 
	    "y": 0.0,
	  },
	  "paddle1": {
	    "x": -2.8, 
	    "y": 0.0,
	  },
	  "paddle2": {
	    "x": 2.8, 
	    "y": 0.0,
	  },
	  "score": {
			"player1": 0,
			"player2": 0,
	  },
  },
}

3-3. ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ ํ‚ค ์ž…๋ ฅ ์ •๋ณด ์ „์†ก

{
  "type": "game",
  "subtype": "key_down",
  "message": "key!",
  **"match_id": 123,**
  "data": {
	  "key_set": [],
  },
}