EulerHobeln:Protokoll Lobby

Aus II-Wiki
Zur Navigation springen Zur Suche springen
Einordnung
Level 2 ÜDP VRace Lobby
Level 1 O2Mega
Transport TCP

Das Lobby Protokoll beschreibt die Client-Server Komunikation der Lobby.

Hierbei werden über eine bestehende O2Mega-Verbindung Daten zwichen Client und Server ausgetauscht. Diese Date werden in zwei Gruppen unterteilt. Im Komandos und die jeweiligen Antworten. Kommandos können von beiden vom beiden Seiten gesendet werden, jedoch untescheiden sich die Client- von den Server-Kommandos.

Struktur Kommandos

Im algemein sind die Kommandos (CMD) folgendermaßen aufgebaut:

0 8
CMDName Parameter

Hierbei ist CMDName der 8 Byte lange Befehl und Parameter der optionale Befehlsparameter, dessen Länge und Inhalt wird für jeden Befehl neu definiert.

Struktur der Antworten

Die Antwort (CMDResponse) auf ein Kommando (CMD) ist folgendermaßen aufgebaut:

0 8 16
CMDResponse CMD Parameter

CMDResponse kann dabei einer der drei verschieden Typen sein:

  • CMDSUCCS
Das Kommando wurde erfolgreich durchgeführt
  • CMDFAILE
Das Kommando konnte nicht duchgeführt werden
  • CMDERROR
Das Kommando ist unbekannt oder nicht implementiert

CMD enthält das bearbeitete Kommando.

Parameter kann zusätzliche Informationen enthalten. Läge und Inhalt kann bei jedem Kommando unterschiedlich ausfallen.

Behfelsstrukturen

Oder auch: Von wem welche Kommandos geschickt werden und welche antworten sie erwarten.

Serverbefehle

Ob es da überhaupt welche geben wird ;)

Clientbefehle

MOINMOIN

NICKCHNG

Mit NICKCHNG kann der User seinen Username (Nick) in der Lobby änderen.

  • Parameter: Neuer Nick
  • Fails: Wenn der neue Nick schon belegt ist.
NICKCHNG %NeuerNick% Senden des neuen Nicks
CMDSUCCS NICKCHNG Nick wurde akzeptiert
CMDFAILE NICKCHNG %Reason% ungültiger Nick, oder schon vorhanden

USERLIST

Mit USERLIST wird die Liste alles Usernamen vom Server geholt die sich im Moment in der Lobby befinden.

  • Paramter: Keine
USERLIST Anfordern der Userlist
CMDSUCCS USERLIST %Userlist% Ausgabe der Userlist
%Userlist%
%Username1% , %Username2% ... , %Usernamen%

GAMELIST

Mit GAMELIST werden alle laufende Spiele abgefragt.

  • Parameter: Keine
GAMELIST Anfordern der Gamelist
CMDSUCCS GAMELIST %Gamelist% Ausgabe der Gamelist
%Gamelist%
%Gameinfo 1% <CRLF> %Gameinfo 2% ... <CRLF> %Gameinfo n%
%Gameinfo%
%Port% <Tab> %Type% <Tab> %Beschreibung%

Behfehlsszenarien

Verbindungs-Handshake

Nachdem ein kompatibler Client zu einem O2Mega-Server connected ist, erfolgt die komplette Anmeldung des Clienten in der Lobby wie folgt:

MOINMOIN %CientInfos% Anmeldung am Server
CMDSUCCS MOINMOIN %ServerInfo% 1. Handshake
CMDFAILE MOINMOIN %Reason% access denied
NICKCHNG %NeuerNick% Loginname
CMDSUCCS NICKCHNG - 2. Handshake. Anmeldung erfolgreich beendet
CMDFAILE NICKCHNG %Reason% ungültiger Nick, oder schon vorhanden
Anmeldung beendet

Sollte der Nickchange fehlschlagen, soll nur ein neuer Nick gesendet werden, statt die ganze Anmeldung zu wiederholen.

Weitere Befehle

USERLIST - Userliste anfordern
CMDSUCCS USERLIST %Userliste% Userliste wird übergeben
CMDFAILE USERLIST %Reason% Userliste kann nicht übertragen werden