# Multi-User-Chat



## arnydaniel (15. Jul 2010)

01701657859

Hallo,

ich möchte einen Multi-User-Chat bauen, der folgendes kann:
beliebig viele Benutzer/Clients, einen Server. Es soll einen allgemeinen Chat-Bereich geben, in den alle reinschreiben und lesen können und dann noch beliebig viele private Chats (mit jeweils 2 Clients/Benutzern).

Ist also alles nichts außergewöhnliches für einen Chat.
Doch leider scheitere ich bereits, bevor ich die erste Zeile Code geschrieben habe.

Wie kommunizieren die Clients und der Server? Wenn z.B. ein Client eine Nachricht in den Allemeinen Bereich schreibt, wie kommt die dann zu den anderen Clients? Im Prinzip muss der Server diese Nachricht ja dnan an alle Clients senden - aber muss in diesem Fall nicht auch jeder Client dann als Server argieren, sprich auf Nachrichten horchen? (Selbe Frage stellt sich, wenn man darüber nachdenkt, wie den Clients mitgeteilt wird, dass ein neuer Benutzer in den Chat eingestiegen ist...)
Und wie läuft die Kommuniukation zwischen den Clients ab - direkt oder auch über den Server?

Danke schonmal im Voarus!


----------



## SlaterB (15. Jul 2010)

zwischen den Clients wäre aufwendig, nein nur über den Server,

und dann drei Möglichkeiten
1.
jeder Client ist auch Server, Nachrichten in beliebige Richtungen
2.
jeder Client fragt alle x sec an bzw. bei eigenem Text, bekommt nur dann als Antwort aktuelle Infos
3.
eine dauerhaft geöffnete Verbindung zum Server, vom Client aus initialisiert, 
darüber wieder beliebige Nachrichten in beide Richtungen

kannst du auch im Forum oder bei google suchen, z.B.
Chapter 37 -- Creating Multi-User Programs in Java


----------



## Wildcard (16. Jul 2010)

Wenn du sowas ernsthaft betreiben willst bietet es sich vermutlich an auf Jabber aufzubauen. Wenn es dir darum geht dir selbst ein Protokol auszudenken dann ist Net4J ideal dafür. Sie haben sogar ein funktionierendes Chat Example das du aus dem CVS beziehen kannst:
[Modeling_Project] Eclipse Source Repositoriesorg.eclipse.emf/org.eclipse.emf.cdo/plugins
(Die org.eclipse.net4j.buddies* projekte).


----------

