Entwickler-Ecke

Internet / Netzwerk - Userliste im Chat


noctua - Mo 01.11.04 19:19
Titel: Userliste im Chat
hi ich wollt ma fragen ob mir einer helfen kann, ich bin noch nich so ganz geübt im umgang mit TserverSocket unter delphi7.

also ich habe jetzt einen einigermasen funktionierenden chat. es können sich so viele leute wie möglich einloggen und auch texte schreiben, blos es gibt ein problem keiner weiss jetzt genau wie viele leute im chat sind. man muss sich zwar anmelden und kann erst nach eingabe seiner Nicks und seines passwortes was schreiben aber das is ja nich so doll. also wollt ich ma fragen ob mir jemand helfen kann und nen tip gibt wie ich so ne useliste mache.


danke :D


Delete - Mo 01.11.04 19:43

Bau dir ne Klasse TCLient und erzeuge auf dem Server für jeden aktiven Client eine Instanz. Die können dann von den anderen Clients geladen werden und jeder ist immer auf dem aktuellen Stand.


noctua - Mo 01.11.04 20:12

ok ich hab zwar nicht wirklich viel verstanden aber ich guck ma was ich machen kann (schaff)


noctua - Mo 01.11.04 20:42

aber das problem ist jetzt wi merke ich das jemand online ist oder offline ... er hat sich jetzt angemeldet aber der server kann die leute doch nicht unterscheiden er hat nur geprüft ob das pass richtig ist mehr hat er mit den leuten nicht zu tun (auser text annehmen und an alle anderen weitersenden).


patrick - Mo 01.11.04 21:06

abend!!
die einfachste lösung ist folgende:
entweder du verwendest einen ping oder du baust dir einen ping nach.
also


  1. Server schickt regelmäßig eine interne Nachricht an die clients (30 sekunden rythmus sollte reichen)
  2. diese nachricht wird intern verarbeitet und ist in dieser forum nicht für den benutzer sichtbar
  3. client erkennt die nachricht als "onlineabfrage" und schickt eine antwort an den server
  4. wenn der server innerhalb einer gewissen zeit eine antwort von dem client erhält weiß dieser das der client aktiv ist. kommt keine antwort, ist der client offline bzw nicht erreichbar.
  5. die onlineinformationen werden an die clients verschickt (wer ist online)
  6. die clients zeigen den aktuellen onlinestatus der anderen clients an


ich hoffe ich konnte helfen und jetzt guck ich Fahrenheit 9/11 weil ich damals nicht ins kino gekommen bin *G*


noctua - Mo 01.11.04 21:21

ach .. das klingt doch ma gut .. danke :D das werd ich gleich ma probieren


patrick - Di 02.11.04 10:20

auf diese weise kann man auch verschiedene "zustände" wie in icq übergeben


Udontknow - Di 02.11.04 11:03

Hallo!

Diese Komponenten [http://www.delphi-forum.de/viewtopic.php?t=28740&highlight=] übernehmen das Verwalten von Userlisten für dich. Da ist auch eine Demo-Anwendung (ein Chat mit mehreren Chaträumen) dabei.

Cu,
Udontknow


patrick - Di 02.11.04 13:04

@ Udontknow: spielverderber :motz: :mrgreen:


Udontknow - Di 02.11.04 13:09

:tongue: :mrgreen: