Seite 1 von 1

Frage zu einem Chatprogramm

Verfasst: 05.05.2011 13:53
von pureanfänger
Hallo Leute,

Ich habe ein Chat über eine Client/Serveranwendung realisiert.

Ich mache es momentan so, dass wenn einer der Clients eine Nachricht an den Server sendet, leitet dieser dann die Nachricht an alle angemeldeten Clients weiter.

Ist das eine gängige Methode oder gibt es da vielleicht noch eine bessere ?

Re: Frage zu einem Chatprogramm

Verfasst: 05.05.2011 14:13
von cxAlex
Nicht wirklich anders machbar, es muss ja jeder Client den Text empfangen, also muss der Server das ganze auch an alle verteilen.
Intern würde ich das ganze so lösen das jeder Client soetwas wie einen Message Stack hat, also wenn ein Client nun eine neue Message versendet wird diese am Server auf alle anderen Stacks gelegt. In regelmäßigen Abständen fragt der Client an ob Nachrichten für ihn bereitstehen, bzw. der Server sendet ein kleines Event an den Client. Dieser läd dann seine Messages herrunter. So kannst du dann auch ganz einfach Offline - Messages, mehrere Chat-Räume, usw. realisieren.

Gruß, Alex

Re: Frage zu einem Chatprogramm

Verfasst: 05.05.2011 14:47
von pureanfänger
Danke für die schnelle Antwort :)

Also das mit dem Message Stack ist eine gute Idee, ist aber momentan nicht notwendig, da es nur ein Realtime-Chat werden soll.

Re: Frage zu einem Chatprogramm

Verfasst: 05.05.2011 14:58
von cxAlex
:)

Solange es nur ein kleiner Chat ist ist es eh ok so, ab einer gewissen Anzahl von Usern solltes du das aber anders implementieren da du sonst Netzwerk-Lastspitzen erzeugen könntest wenn du immer alles sofort weiterleitest. Bei kleinen Textmessages sollte das ja noch kein Problem sein, aber wenn du irgendwann noch andere Sachen dazu übertragen willst (Bilder, Daten-Transfer allgemein) wird's da schon kritisch.

Gruß, Alex

Re: Frage zu einem Chatprogramm

Verfasst: 05.05.2011 19:51
von pureanfänger
Also im Grunde soll es halt ein Gamechat werden, indem sich Leute innerhalb eines bestimmten Spielbereichs miteinander unterhalten können.

Deshalb liegt mir die Performace sehr am Herzen :)

Re: Frage zu einem Chatprogramm

Verfasst: 19.05.2011 19:15
von KatSeiko
Wenn du das als P2P machen willst (um den Server zu schonen) wird es härter. Der Server muss dann "nur" IPs speichern und über Connects und Disconnects informieren.

Die Clients würden dann sowohl einen Client als auch einen Server in ihrem Programm haben (da man Client und Client nicht verbunden bekommt) und jedes Mal zum Kommunizieren ihren Text an jede IP in der Liste senden.

Ist geringfügig aufwändiger, aber eine Überlegung wert.