uni:ba:protocol
Table of Contents
Protocol
Message und Richtung | Ausgelöste Messages name (an, blockirung) | … blocks … | |||
---|---|---|---|---|---|
Who | Whom | ||||
← | ticket | ||||
← | toPlayer | ||||
← | player/state | ||||
register | → | player (alle, akkumulierbar) ticket (caller, blocken am caller) | caller | caller | |
unregister | → | player (alle, akkumulierbar) | caller | caller | |
move | → | state (alle, akkumulierbar) toPlayer (player, blocken am game) | any player | game | |
requestPlayer/requestState | → | player/state/eigene message? (caller, blocken am caller) | caller | caller |
Protocol adapter
ticket
toPlayer
state
player
quit
Abbruch durch server initiiert
Dings 1
register
“register” anstatt “setup”, denn dafür gibt es ein passendes “unregister”.
“keepAlive” anstatt “autoUnregister”, denn es i
Timeout bis zum register erforderlich.
unregister
Hm, eher ein “keepAlive”, dann bleibt er nur offen, wenn bis dahin der Adapter noch nicht abgestürzt ist. (kann auch als Ping benutz werden)
Am besten keine Antwort (Abbruch im Fehlerfall)
move
Argumente
- move : str
- Der move als Textbeschreibung. Das Spiel muss damit umgehen können. Es wird hier einfach nur durchgereicht.
requestPlayer/requestState
Argumente
- from : int
- Erster player/state (von 0 weg)
- to : int = -1
- Letzter player/state (von 0 weg).
-1 = Bis zum letzten (kann vom Master beschnitten werden?)
Die player/state ID muss im Datensatz vorkommen, da protocol buffers keine dictionarys kennt.
Return
- players/states : player/state[]
- Player/State array
- total : int
- Absolute Anzahl an verfügbaren players/states (um heraus zu finden, ob alle geschickt wurden (pagination))
“total” ist auch deshalb wichtig, damit bei einem ungültigen Bereich (außerhalb verfügbarer Daten) dennoch eine Antwort kommt.
uni/ba/protocol.txt · Last modified: 2020-11-18 18:11 by 127.0.0.1