Wiki

A universe of ideas

User Tools

Site Tools


uni:ba:protocol_sketch

Protocol sketch

… Abschrieb vom Whiteboard.

Kommunikation zwischen Protocol adapter und Dings 1.

C: register(gameId, playerNr, key, aboState, aboPlayer, aboToPlayer, keepAlive/autoUnregster,
            Timeout 1, Timeout 2)
   key: Wenn kein key beim Server für den Player hinterlegt ist (z.B. weil der client einen
        time out hatte), dann ignoriere den übergebenen key und weise einen neuen zu.
S: ticket(gameData, playerID, key)/ERR
   key nicht in to Player, damit keiner Schummeln kann
   wirklich alles in gameData nötig? (eigentlich nur für web Player)

------ Ab hier ist die Verbindung aufgebaut und folgende Nachrichten können folgen

C: unregister
   Geschlossene Verbindung nicht hinreichen, da HTTP player auch ohne Verbindung aktiv
   bleiben muss. Daher "auto unregister" für Protokolle oder "keep alive" für HTTP player.
S: OK/ERR

C: move(s)
   Kann player jeder Zeit senden. Aufforderung zum move, muss Protokoll Adapter anhand von
   state() erkennen.
   Zwischen move() und OK/ERR alles state/player()/toPlayer().
S: OK/ERR
   Ist das nötig?

S: state(nr, data)
S: player(nr, data)
   Vor toPlayer(), damit sich state machine drauf einstellen kann.
   Kann "geheime" infos, wie verdekte Karten der Gegner, beinhalten.
   
S: toPlayer(data)
   Flexibler, damit können auch daten zwichen den Zügen an die Player gesendet werden.
   key => (type, value)
   "next" -> int(3)
   "board" -> array(...)

C: requestState/Player ???
S: quit(reason)
uni/ba/protocol_sketch.txt · Last modified: 2020-11-18 18:11 by 127.0.0.1