-
Notifications
You must be signed in to change notification settings - Fork 1
Protocol
BaekGeunYoung edited this page Jun 5, 2021
·
1 revision
- User
{
"username": String
"id": UUID
"position": {"x": Double, "y": Double}
"radius": Double
}
- Prey
{
"id": UUID
"position": {"x": Double, "y": Double}
"radius": Double
}
/?id=${id}&username={username}
username은 사용자로부터 입력받은 값, id는 클라이언트가 UUID로 생성하여 서버로 던져준다.
incoming message (서버가 받는 메세지)
- POSITION_CHANGED
- what : user id + current position
{
"type": "POSITION_CHANGED",
"body": {
"position": {"x": ?, "y": ?}
}
}
- MERGE (user가 user를 먹는 행위)
- what : 먹는 사람 id / 먹히는 사람 id
{
"type": "MERGE",
"body": {
"colony_id": ?
}
}
- EAT (user가 바닥에 깔려 있는 먹이를 먹는 행위)
- what : 먹는 사람 id / 먹히는 먹이 id
{
"type": "EAT",
"body": {
"prey_id": ?
}
}
outgoing message (서버가 보내는 메세지)
- JOIN
- who : roo 안의 모든 유저
- when : 맨 처음 room에 접속했을 때
- what : 새로 생성된 User 객체
{
"type": "JOIN",
"body": {
"new_user": User
}
}
- OBJECTS
- who : room 안의 모든 유저
- when : POSITION_CHANGED 메세지가 들어왓을 때
- what : 모든 유저 list + 모든 먹이 list
{
"type": "OBJECTS",
"body": {
"users": [user1, user2, user3, ...],
"preys": [prey1, prey2, prey3, ...]
}
}
- MERGED
- who : 모든 유저
- when : 먹었을 때
- what : 먹고 나서의 위치 + 원의 크기
{
"type": "MERGED",
"body": {
"user_after_merge": User,
"colony_id": UUID
}
}
- WAS_MERGED
- who : 먹힌 유저
- when : 먹혔을 때
- what : empty
{
"type": "WAS_MERGED",
"body": {}
}
- EATED
- who : 모든 유저
- when : 먹었을 때
- what : 먹고 나서의 위치 + 원의 크기
{
"type": "EATED",
"body": {
"user_after_eat": User,
"prey_id": UUID
}
}
- SEED
- who : room 안의 모든 유저
- when : room 안의 먹이가 x개 이하로 떨어졌을 때
- what : 새롭게 추가된 먹이 List
{
"type": "SEED",
"body": {
"new_preys": [prey1, prey2, prey3, ...]
}
}