Frage zu einem Chatprogramm

Anfängerfragen zum Programmieren mit PureBasic.
pureanfänger
Beiträge: 74
Registriert: 29.03.2008 15:22

Frage zu einem Chatprogramm

Beitrag 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 ?
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Frage zu einem Chatprogramm

Beitrag 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
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
pureanfänger
Beiträge: 74
Registriert: 29.03.2008 15:22

Re: Frage zu einem Chatprogramm

Beitrag 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.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Re: Frage zu einem Chatprogramm

Beitrag 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
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
pureanfänger
Beiträge: 74
Registriert: 29.03.2008 15:22

Re: Frage zu einem Chatprogramm

Beitrag 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 :)
Benutzeravatar
KatSeiko
Beiträge: 367
Registriert: 19.07.2008 07:47

Re: Frage zu einem Chatprogramm

Beitrag 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.
Win7 Ultimate x64, PureBasic 5.11

There is no substitute..
BildBildBild
Antworten