Protocol - BaekGeunYoung/agario_clone_backend Wiki

agario_clone

messages

object

  1. User
{
    "username": String
    "id": UUID
    "position": {"x": Double, "y": Double}
    "radius": Double
}
  1. Prey
{
    "id": UUID
    "position": {"x": Double, "y": Double}
    "radius": Double
}

connection url

/?id=${id}&username={username}

username은 사용자로부터 입력받은 값, id는 클라이언트가 UUID로 생성하여 서버로 던져준다.

message type

incoming message (서버가 받는 메세지)

{
  "type": "POSITION_CHANGED",
  "body": {
    "position": {"x": ?, "y": ?}
  }
}
{
  "type": "MERGE",
  "body": {
    "colony_id": ? 
  }
}
{
  "type": "EAT",
  "body": {
    "prey_id": ? 
  }
}

outgoing message (서버가 보내는 메세지)

{
  "type": "JOIN",
  "body": {
    "new_user": User
  }
}
{
  "type": "OBJECTS",
  "body": {
    "users": [user1, user2, user3, ...],
    "preys": [prey1, prey2, prey3, ...] 
  }
}
{
  "type": "MERGED",
  "body": {
    "user_after_merge": User,
    "colony_id": UUID
  }
}
{
  "type": "WAS_MERGED",
  "body": {}
}
{
  "type": "EATED",
  "body": {
    "user_after_eat": User,
    "prey_id": UUID
  }
}
{
  "type": "SEED",
  "body": {
    "new_preys": [prey1, prey2, prey3, ...]
  }
}