diff options
Diffstat (limited to 'doc/api.org')
| -rw-r--r-- | doc/api.org | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/doc/api.org b/doc/api.org index 25eb9a0..bfabd40 100644 --- a/doc/api.org +++ b/doc/api.org @@ -4,8 +4,14 @@ #+LATEX_HEADER: \usepackage{fullpage} * General Description - - All transmissions will be based on UDP - - All UDP packet will contain plain json data + - All transmissions will be based on TCP because: + - Packet length are not fixed + - Packet ordering is important + - All TCP stream from *client to server* will: + - Contain plain json data + - Be terminated by a "#EOF" line (in order for the server to detect the end of the request + - All TCP stream from *server to client* will contains plai json data (connection will be closed by the server + so there is no need of "#EOF". * Communications ** Initialisation 1. Server wait for a client @@ -14,36 +20,33 @@ { "type": "new-game" } + #EOF #+END_SRC 3. Server can reply: #+BEGIN_SRC json { "type": "state", - "syn": 1, "game-id": 1, "game-over": false, "snake": [[1,2],[1,3]], "food": [[6,7]] } #+END_SRC - Note that, syn entry is used to keep packet ordering consistent and detecting packet inversion on the network. Thus, - syn entry indicate the expected syn that the client should send on the next UDP packet. ** Gameplay *** Change Direction 1. When client is playing a game it can ask to the server to change snake direction: #+BEGIN_SRC json { "type": "update", - "syn": 1, "game-id": 1, "direction": "left", } + #EOF #+END_SRC 2. Server can reply #+BEGIN_SRC json { "type": "state", - "syn": 2, "game-id": 1, "game-over": false, "snake": [[0,2],[1,2]], @@ -55,16 +58,15 @@ #+BEGIN_SRC json { "type": "update", - "syn": 2, "game-id": 1, "direction": null } + #EOF #+END_SRC 2. Server can reply: #+BEGIN_SRC json { "type": "state", - "syn": 3, "game-id": 1, "game-over": false, "snake": [[1,2],[0,2]], @@ -76,11 +78,10 @@ #+BEGIN_SRC json { "type": "state", - "syn": null, "game-id": 1, "game-over": true, "snake": [[0,2],[1,2]], "food": [[6,7]] } #+END_SRC - - No reply is expected from the client and server will be in charge to free local memory. Note that syn=null. + - No reply is expected from the client and server will be in charge to free local memory. |
