Chat-Protokoll

Das Protokoll ist Text-basiert und verwendet einen TCP-Socket auf Port 12345.

Im folgenden Diagramm ist der zeitliche Ablauf einer Chat-Session dargestellt. Die Mitteilungen join-message und leave-message stellen zwingend die erste resp. letzte Aktion eines Clients dar. Die anderen Mitteilungen (broadcast-message, private-message und server-message) können in beliebiger Reihenfolge dazwischen auftreten.

Mitteilungen von Client zu Server

join-message
join:nickname
Muss als erste Mitteilung unaufgefordert übermittelt werden und setzt den nickname1
Beispiel: join:eddy
leave-message
leave:
Der Server trennt darauf die Verbindung zum Client
Beispiel: leave:
broadcast-message
Mitteilungs-Text mit führendem Doppelpunkt
Mitteilung wird an alle anderen Chat-Teilnehmer verschickt
Beispiel: :Ich liebe Kaffee
private-message
@nickname gefolgt von Doppelpunkt und Mitteilungs-Text
Mitteilung wird nur an den Chat-Teilnehmer nickname verschickt
Beispiel: @eddy:Ich liebe Kaffee

Mitteilungen von Server zu Client

broadcast-message:
nickname gefolgt von Doppelpunkt, Leerzeichen und dem Mitteilungs-Text
Mitteilung an alle Chat-Teilnehmer von nickname
Beispiel: eddy: Ich liebe Kaffee
private-message
nickname@me gefolgt von Doppelpunkt, Leerzeichen und Mitteilungs-Text
Mitteilung nur an diesen Client von nickname
Beispiel: eddy@me: Ich liebe Kaffee
server-message
Hashzeichen gefolgt von Mitteilungstyp, Doppelpunkt, Leerschlag und Mitteilungs-Text
Mitteilung von Server an Client (z.B. bei eigenem Beitritt, Beitritt eines neuen Chat-Partners, Austritten, ...)
Mitteilungstypen: welcome, join, leave, error
Beispiel: #welcome: Willkommen im EF-Chat
Beispiel: #join: eddy ist dem Chat beigetreten
Beispiel: #leave: eddy hat den Chat verlassen
Beispiel: #error: der Nickname darf höchstens 12 Zeichen lang sein!

  1. nur Kleinbuchstaben, keine Sonderzeichen, maximal 12 Zeichen