Thema: Delphi _kleines_ Chat programm

Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#16

Re: _kleines_ Chat programm

  Alt 14. Sep 2008, 21:21
Die meisten Chat-Tutorials sind auf Chats im lokalen netzwerk ausgerichtet. Im LAN lohnt sich ein Anmeldevorgang normalerweise natürlich nicht. Was du machen willst, ist sicher ein Chat über das Internet.

Ansatz:
- PHP-Script auf Gratisserver prüft die Logindaten
- Wenn die Logindaten korrekt sind wird die IP-Adresse mit der eindeutigen ID des Nutzers in eine Liste/Datenbank geschrieben
- Alle angemeldeten Benutzer pollen regelmäßig diese Liste und prüfen, ob Nutzer sich angemeldet oder abgemeldet haben
- Wenn der Nutzer Bob die Nutzerin Alice anschreibt, wird eine Nachricht an an die Ip-Adresse von Alice verschickt. Auf dem Computer von Alice muss dafür ein Server auf einen bestimmten Port lauschen. Wenn eine eingehene verbidnung ankommt, nimmt der Server auf Alice' Computer dann (ggf. nach einer Überprüfung) die verbindung an und schickt eine Bestätigung über die verbindung an Bob.
- Über diese verbindung können dann nachrichten ausgetauscht werden

Nachteil:
- Wenn Alice hinter einem Router sitzt, ist Alice' Computer nicht direkt mit dem Internet verbunden. Das heißt, über die von außen sichtbare IP-Adresse ist nur der Router erreichbar. Deshalb muss der Router so eingestellt werden, dass er bestimmte Pakete an Alice' Computer weiterleitet (Portforwarding). Diese Einstellung muss entweder manuell im Router-Menü eingestellt werden (heißt, deine Nutzer dürfen keine totalen DAUs sein), oder per UPNP (falls dieses aktiviert ist). Ich habe bis jetzt aber noch keine funktionierende Lösung gefunden, um mit Delphi per UPNP einen port weiterzuleiten. Wenn du eine funktionierende Lösung findest, lass es mich wissen
- Es können imemr nur 2 Leute miteinander chatten.

Mögliche Abhilfe:
- Zentraler Chat über einen zentralen server: Hierbei bracuht keienr der Nutzer einen lokalen Server um verbindungen anzunehmen, sondern alle Nutzer verbinden sich mit einem von dir administrierten, zentralen Server. Dieser Server leitet dann die eikommenden nachrichten an die Clients weiter.

Für letzteres musst du aber entweder einen Root/V-Server anmieten (nicht ganz billig), weil du ein Programm auf dem Server ausführen musst (bei Funpic geht das nicht). Du kannst auch deinen eigenen Rechner als Server einrichten (musst dann halt den Port im Router weiterleiten, dafür müssen deine Nutzer das nicht), was aber den nachteil hat, dass die geschwindigkeit bei privaten DSL-Anschlüssen nicht so berauschend ist.
  Mit Zitat antworten Zitat