Diskussion:EulerHobeln:Protokoll
Protokoll-Fragen
Beim Implementieren sind mir einige Fragen aufgefallen:
- Ports registrieren
Darf ein Service nur einen Port oder mehrere Ports registrieren?
Wir hatten, glaube ich, gesagt, dass mehrere möglich sind, damit ein Spiel Dinge wie Chat auf einen externen Port auslagern kann.
OK. So weit, so gut. Nun tritt das nächste Problem auf:
Wenn ich die Gamelist anfordere (die Liste der "Spieltische"), dann muss ich nicht nur die Ports, sondern auch das Protokoll, welches dort läuft, mitteilen. Denn der Client kann nicht riechen, welcher Dienst (z.B. Chat) auf einem Port läuft.
- Also muss der Server sich noch merken, welche Protokolle auf welchen Ports laufen?!?
- Oder kann man auf dem Port fragen, welches Protokoll dort implementiert ist?
- Oder hat ein Game einen Standardport, auf welchem solche Dinge geklärt werden können?
- In der Lobby, die als einzigstes auf dem festgelegten Port 0 liegt, kannst du eine Gamelist abfragen, die die aktuell gestarteten Gameserver (Services) enthält. Je nach dem wie der Service aufgebaut ist, stellt er selber eine GameLobby zur Verfügung, über die man dann nähere Infos erhält. Oder der Service ist ein "OneGameService", dann muss er für mehrere Spieltische mehrmals gestartet werden, wobei diese dann auch in der normalen GameList aufgeführt werden.
- Omega 22:45, 19. Mär 2006 (CET)
- Mh. Ich denke, dass eine zusätzliche Lobby keinen Sinn macht. Alle Spiele sind "OneGameService" und müssen für mehrere Tische mehrmals gestartet werden. Jeweils auf verschiedenen Ports.
- Soll denn ein Service maximal einen Port registrieren, oder können das mehrere sein? z.B. der Chat auf einem extra Port?
- Wenn ja, dann muss über die Gameliste auch klar sein, welches Protokoll auf den Ports läuft, weil dann ein Service nicht das Protokoll impliziert. (bei mehreren Ports)...
- Also der Einfachheit halber nur ein Port pro Service. (Ausgenommen ÜDP)
- Das wäre zu diskutieren.
- Petronios 15:56, 20. Mär 2006 (CET)
- Überlängedaten Verschoben nach ÜDP-Diskussion
- Chat-Befehle Verschoben nach Lobby-Diskussion
Alte Diskussion
Sollten wir vielleicht eine Protokoll-Befehlsreferenz zu jedem Protokoll anfertigen?
- Machen wir doch. Wie du siehst, gibt es 3 große Überschriften.
- Und zum Lobby-Protokoll gibts den Entwurf einer Befehlsreferenz. Wo is da noch was zu tun?
- Petronios 19:20, 17. Jan 2006 (CET)
- Ich dachte eher so an die tabellarische Übersicht aller Befehle incl. Befehlsrichtung, erwarteten Parametern, worauf die Befehle als Antwort kommen etc.
- So wie es beim Omega mal auf Blättern stand.
- --Imag 22:18, 17. Jan 2006 (CET)
- Na das O2MegaProtokoll ist nur ein Container. Da gibts sowas nich.
- Und beim Lobby-Protokoll, was erstmal das wichtige is, is die Tabelle schon da, wenn auch nich vollständig.
- Die Referenzen zu den anderen Spielen folgen noch.
- Petronios 23:48, 17. Jan 2006 (CET)
Feste Verdrahtung
Dagegen!
Mein Server wird so aufgebaut, das es er nur das O2MegaContainer-Protokoll implementiert.
Für jeden Client gibt es ein Thread, der auf Bytes wartet. Der Handshake passiert erst danach. Ich seh das nicht ein meinem Container mehr Intelligenz zu geben, als Pakete aufzumachen und auf Ports zu verteilen. Schutz vor DOS-Angriffen lässt sich auch einbauen, weil jeder Socket, der sowieso durchkommt, eine IP hat, und dann droppt man halt die Verbindung. Fertsch.
Für Sebbl:
Das O2Mega-Protokoll muss auch im uneingeloggten Zustand funktionieren, weil man damit alles implementieren können soll. Deswegen ist die Struktur so gedacht.
Ich finde Omegas Protokoll gut, als Container unversell und sehe nicht ein solch eine feste Verdrahtung zuzulassen. Ich weiß nicht wie du das implementierst. Da du sicher mit Klassen arbeitest, sollte es aber kein Problem sein, diese Protokoll-Schnittstelle zu abstrahieren.
Oder vielleicht verstehen wir uns auch falsch. K.A.
Petronios 01:47, 19. Jan 2006 (CET)
- Ja, da haben wir uns n bissl falsch verstanden. Natürlich is das O2Mega nicht fest. Aber bei dem Handshake geht die Clientanmeldung ja übers Lobbyprotokoll. Und da is ein klarer Ablauf einer Initialisierungsstruktur durchaus sinnvoll
- Imag 10:18, 19. Jan 2006 (CET)
- Da das ganze hier in Missverständnisse ausartet bin ich für eine Aufspaltung des Artikels in O2Mega und Lobby.
- Omega 12:34, 19. Jan 2006 (CET)
- [x] Dafür
- Ich mach das.
- Petronios 14:47, 19. Jan 2006 (CET)