Protokoll JTalker Version 0.5: by ChrM 26.03.2005 ------------------------------ 0.) Allgemein: * Beim JTalker-Protokoll handelt es sich um nach XML 1.0 formatierte Daten-Pakete * Jedes Daten-Paket muss in ein Root-Tag eingebettet werden * Die Datenpakete dürfen _keine_ Zeilenumbrüche enthalten (CR/LF) * Das Prtotokoll definiert folgende Tags: - : Benutzerdaten - : Anweisung für den Server, einen neuen Benutzer anzulegen - : Standard-Tag für alle sonstigen Nachrichten Alle Tags werden nachfolgend näher spezifiziert. ------------------------------------------------------- 1.) Server connection -> Willkommen-String. Empfangen: " " ------------------------------------------------------- 2.) Login. Senden: " " bzw.: " " Erklärung: Mit Hilfe des -Tags leitet man das Login ein. * name: Beinhaltet den User-Namen. * passwd: User Passwort * status: Staus des Users, zB: "normal" oder "busy". Default ist "normal" * type: Gibt den Verbindugstypen an. Default ist "persistent". * sid: Session ID der letzten Session (nur für Webclients) Als Antwort sendet der Server entweder eine Fehlermeldung (Login nicht möglich), oder eine Information, die die Session-ID beinhaltet (nur beim type="webclient") und die Liste aller gerade angemeldeten User (siehe 3.). ------------------------------------------------------- 3.) Liste eingelogter User: Empfangen: " " Erklärung: Das -Tag liefert Status-Informationen über die gerade angemeldeten Benutzer. * name: Beinhaltet den User-Namen. * status: Staus des Users, zB: "normal" oder "busy" * ip: Die IP-Adresse des User-Rechners, zB.: "127.0.0.1" * type: Gibt den speziellen User-Typen an. Dieser wird nur angegeben, wenn der User eine besondere Aufgabe hat, zB.: "chatroom". ------------------------------------------------------- 4.) Account erzeugen. Senden: " " ------------------------------------------------------- 5.) Messages -> Senden: " " Erklärung: * content: Inhalt der Nachricht (ohne Zeilenumbrüche). Sie kann HTML enthalten * to: Empfänger der Nachricht. Sind keine angegeben, fühlt sich der Server selbst für diese Nachricht zuständig (zB. ein Server-Kommando). Geht die Nachricht an mehrere Empf�ger, so werden diese durch ";;" getrennt angegeben. * type: Typ der Nachricht. Ist kein Typ angegeben, wird der Typ "normal" angenommen. Der Typ "normal" kenzeichnet eine normal Text-Mitteilung. Weitere Typen sind: error, info, command oder file. Mit "command" wird ein Kommando verschickt. Ein Kommando hat folgende Syntax: "modul::funktion(param1, param2)". Eine Funktion kann keinen, einen oder mehrere Parameter enthalten. Alle Parameter sind vom Typ String und mssen in "" gesetzt werden. Welche Funktionen ein Modul zur Verfgung stellt, erfahren Sie mit der Funktion: "modul::getMethods()". Der Rückgabewert ist vom type="command_response". Mit "file" wird eine Datei versendet. Die Daten sind innerhalb des "content" Properties eingebettet und nach BASE64 kodiert. * subject: Mit "subject" kann ein Titel (oder zB. Dateiname) passend zu dem "content" übertragen werden. * sid: Wird bei einer Anmeldung mit einem Webclient (nicht persistent) vom Server gesendet und beinhaltet die Session-ID Senden (Bsp.): " " Empfangen (Bsp.): " " ------------------------------------------------------- 6) Meldungen (Fehler/Information) -> Empfangen: " " bzw: " " -------------------------------------------------------------- Server-Kommunikation Ablaufdiagramm. Legende: (>) Server Antwort (<) Gesendete Daten * CONNECT +--(>) GREETING --+--(<) LOGIN --+--(>) USER_LIST --+--(<) MESSAGES | | | | | +--(<) USER_STATUS | | | +--(>) ERROR/INFO | +--(<) CREATE_ACCOUNT --(>) ERROR/INFO -->DISCONNECT