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.