# Userliste für Chat Applet



## Evileye (27. Mai 2010)

Hi Leute,
ich habe mich die letzten Tage ein bisschen mit dem Chat Applet aus den FAQ's beschäfftigt.
Das Funktioniert soweit auch wunderbar, allerdings versuche ich grade eine Userliste hinzuzufügen.
Und da liegt auch schon mein Problem. 

Ich habe vor dem eigentlichen "Start" des Chats ein TextField für den Name, und einen "Anmelde" Button eingefügt. Wenn auf den Anmelde-Button geklickt wird, erscheint das Applet wie aus den Tutorial + eine JList am rechten Rand die eine aktuelle Userliste enthalten soll.

Nun meine Fragen: Wie sollte ich das am besten organisieren? Am einfachsten wäre es ja sicher erstmal wenn der Server eine Userliste verwaltet. Oder sollte ich besser der Connection-Klasse noch ein Attribut für den Name geben, denn die Verbindungen werden ja schon in einer Liste gespeichert.
Dann noch eine Frage, wie soll ich den Name an den Server übertragen?

Sry für die eher "dummen" Fragen aber ich stehe grade ziehmlich auf dem Schlauch.
Vielen Danke schonmal im vorraus.


----------



## Gast2 (27. Mai 2010)

Wenn dein Server schon eine Liste mit allen offenen Verbindungen verwaltet wäre das beste, wie du schon sagtest, jeder Connection ihren usernamen mitzugeben.

Der Server bietet dann noch eine Methode 
	
	
	
	





```
List<String> getUsernames()
```
 an über die sich die Clients dann die aktuelle Userliste holen können.


----------



## Evileye (28. Mai 2010)

Danke für deine Antwort, eine funktionierende Liste, auf dem Server (bzw wenn ich sie mir über den Server ausgeben lasse), habe ich nun schonmal. 
Allerdings komme ich mit dem Senden der Liste an die Clients immernoch nicht richtig klar.

Die Methode 
	
	
	
	





```
getUsernames()
```
 die du vorgeschlagen hast muss ja dann, in etwa wie die brodcast methode, die Liste an alle Clients senden. Ich habe vorhin mal versucht die Liste über einen ObjectOutoutStream zu senden, dass hat aber nicht so ganz funktioniert. 
Wie kann ich das am besten regeln?
Und wo sollte ich die Liste am besten beim Client empfangen? Momentan empfängt der Client, wenn es funktionieren würde, die Liste immer nachdem er eine neue Nachricht erhalten hat.
Wo und wann sollte man denn das aktualisieren der Liste besser vornehmen?


----------



## eRaaaa (29. Mai 2010)

Evileye hat gesagt.:


> Ich habe vorhin mal versucht die Liste über einen ObjectOutoutStream zu senden, dass hat aber nicht so ganz funktioniert.


Was genau hat da nicht funktioniert? Und was beinhaltet jetzt deine Liste? Nur Strings?



> Und wo sollte ich die Liste am besten beim Client empfangen? Momentan empfängt der Client, wenn es funktionieren würde, die Liste immer nachdem er eine neue Nachricht erhalten hat.
> Wo und wann sollte man denn das aktualisieren der Liste besser vornehmen?



Je nachdem wie dein Chat momentan aussieht...
Eig. braucht der Server die Liste nur zu verschicken wenn sich ein neuer Client anmeldet und dann eig. auch nur an diesen User die Liste schicken.(das könntest du z.b. mit dem ObjectOutputStream machen)
Den restlichen Clients schickst du dann einfach eine Broadcast-Nachricht mit dem neuen Usernamen...(auch hier gilt wieder: wie genau die aussieht kommt auf deinen Chat drauf an: Könnte ganz simple so etwas wie "CONNECT: NICKNAME" sein, und die Clients checken bei jedem readLine() oder whatever ob der String mit CONNECT beginnt  ) gleiche Spiel beim Abmelden...


----------



## Evileye (29. Mai 2010)

Danke für eure hilfe, es funktioniert jetzt!


----------

