Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Konzeptfrage - Internet-Chat als Freeware, wie? (https://www.delphipraxis.net/108845-konzeptfrage-internet-chat-als-freeware-wie.html)

hincapie 22. Feb 2008 06:04

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Zitat:

Zitat von QuickAndDirty
Er meint du kannst dir vom Client aus einfach direkt auf den chat verbinden
den trägt man dann als DNS name ein und er ist über DYNDNS immer erreichbar auch wenn die IP sich ändert

Es soll ja gerade keinen zentralen Server geben, auf meiner Webseite werden nur die Kontaktdaten der einzelnen aktiven Server (d. h. des jeweiligen Computers, auf dem der eigentliche Chat-Server läuft) bereitgestellt und an die Clients übermittelt.

Nuclear-Ping 22. Feb 2008 06:36

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Und wo ist genau das Problem?

hincapie 22. Feb 2008 06:38

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Also, nach einigen Tipps werde es jetzt wohl so machen:

Eine MySQL-Tabelle für die Daten der Server (IP-Nummer, Port und weitere Infos) ist auf meinem Webspace bereits eingerichtet.
Eine PHP-Datei mit den Zugangsdaten der Datenbank liegt dort ebenfalls bereit.

Die gesamte Kommunikation zwischen den Servern bzw. Clients und dieser Datenbank wird über PHP-Scripte gesteuert.
Dabei verwende ich die Komponente IdHttp von Indy, um die auf den lokalen Rechnern zusmmmengestellten Scripte an die Datenbank zu senden.

Im einzelnen:
Der Server sendet beim Anmelden einen SQL-INSERT-Befehl über IdHttp, damit er in die Datenbank aufgenommen wird.
Der Client sendet ein Script mit einem SELECT-Befehl zur Anzeige der aktiven Server, zum Einloggen wird dann die entsprechende IP übernommen.
Beim Abmelden sendet der Server einen DELETE-Befehl, um den Datensatz aus der Datenbank zu löschen.

Zur Anzeige der aktiven Server plane ich einmal eine PHP-Datei mit HTML-Befehlen zur Darstellung im Browser sowie ein Script mit reinem PHP, um möglichst nur die Daten aus der Datenbank an die Clients zu schicken.
Dabei plane ich, die Felder der Datenbank mit Kommas und die einzelnen Datensätze mit
z. B.
zu trennen, um sie eventuell in eine Stringlist laden zu können.

Wäre nett, wenn jemand mal checken könnte, ob ich irgendetwas vergessen habe oder ob es vielleicht einfacher gehen könnte... :gruebel: :coder2:

Nuclear-Ping 22. Feb 2008 06:45

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Warum greifst du nicht direkt aus Delphi auf die MySQL-DB zu?

Klar, manche/viele Anbieter erlauben nicht den externen Zugriff auf ihre MySQL-Server, aber so ist es doch auch doppelt-gemoppelt?

Xong 22. Feb 2008 07:33

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Zitat:

Zitat von Nuclear-Ping
Warum greifst du nicht direkt aus Delphi auf die MySQL-DB zu?

Klar, manche/viele Anbieter erlauben nicht den externen Zugriff auf ihre MySQL-Server, aber so ist es doch auch doppelt-gemoppelt?

Aber so ist er von der Datenbank völlig unabhängig und kann sich mit dem PHP-Script seine eigene "Spezifikation" schaffen.

Alles hat Vor- und Nachteile. =)

Zitat:

Zitat von hincapie
Der Server sendet beim Anmelden einen SQL-INSERT-Befehl über IdHttp, damit er in die Datenbank aufgenommen wird.
Der Client sendet ein Script mit einem SELECT-Befehl zur Anzeige der aktiven Server, zum Einloggen wird dann die entsprechende IP übernommen.
Beim Abmelden sendet der Server einen DELETE-Befehl, um den Datensatz aus der Datenbank zu löschen.

Zur Anzeige der aktiven Server plane ich einmal eine PHP-Datei mit HTML-Befehlen zur Darstellung im Browser sowie ein Script mit reinem PHP, um möglichst nur die Daten aus der Datenbank an die Clients zu schicken.
Dabei plane ich, die Felder der Datenbank mit Kommas und die einzelnen Datensätze mit
z. B.
zu trennen, um sie eventuell in eine Stringlist laden zu können.

Mal greifst du direkt auf die Datenbank zu, mal gehst du über ein Webinterface. Da hat Nuclear-Ping schon recht. Man könnte auch alles direkt vom Server lesen. Schließlich sind die Verbindungsdaten ja sowieso schon im Programm. (Ich weiß, ich weiß, ich habe dir ja auch erst etwas anderes empfohlen. :mrgreen: )

Was machst du eigentlich, wenn sich der Server nicht korrekt abmeldet, sondern einfach abstürzt (sei es durch Stromausfall oder Mutwillen)?

hincapie 22. Feb 2008 08:06

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Hhhmmm, ich möchte das ganze so einfach und flexibel wie möglich halten, daher scheint mir der Zugriff mit PHP am besten.

Knackpunkt ist eben noch die Übertragung der Server-Daten an die Clients:
Mir wäre am liebsten, möglichst nur die Daten aus der Tabelle zu schicken und im Client z.b. in einer Listbox darzustellen.
Eventuell sollte ich da nach jedem Datensatz anstatt
lieber die PHP-Anweisung /n benutzen?

Beim Absturz eines Servers?
Gute Frage, dafür gibt es ja diesen Thread... :gruebel: :zwinker:
Vielleicht irgendwie mit einem PHP-Script die Erreichbarkeit des Servers überprüfen? :?:

Progman 22. Feb 2008 08:15

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
hm... ich kann das Gesamtkonzept dieses Chatsystems nicht recht nachvollziehen. Wieso brauch man mehrere Server?
Ein zentraler Server genügt doch und jeder Client meldet sich über ein definiertes Protokoll an. Der Server (DynDNS- oder no-ip-URL) übernimmt die Verwaltung der Kommunikation zwischen den Clients und das wars (siehe IRC). Das wäre doch wesentlich einfacher als so eine komplizierte Geschichte ;)

Xong 22. Feb 2008 08:28

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Zitat:

Zitat von hincapie
Hhhmmm, ich möchte das ganze so einfach und flexibel wie möglich halten, daher scheint mir der Zugriff mit PHP am besten.

Es muss ja nicht PHP sein. Du kannst auch Delphi-Programme (bzw. jegliches Kompilat aller möglichen Programmiersprachen) über das CGI auf einem Webserver laufen lassen. Die Einrichtung ist nicht weiter schwierig. Der Anbieter muss CGIs nur unterstützen. Solltest du da Interesse haben, kannst du dich gerne an mich wenden.

Zitat:

Zitat von hincapie
Knackpunkt ist eben noch die Übertragung der Server-Daten an die Clients:
Mir wäre am liebsten, möglichst nur die Daten aus der Tabelle zu schicken und im Client z.b. in einer Listbox darzustellen.
Eventuell sollte ich da nach jedem Datensatz anstatt
lieber die PHP-Anweisung /n benutzen?

Ich verstehe deinen Wunsch nach Kapselung und kann ihn nur unterstützen.
Deshalb ein paar Gedanken:
Du solltest auf dem Masterserver, der die Server verwaltet, ein Interface einrichten. Darüber können Clients die aktuellen Server abfragen und die Server ein- bzw. austragen.
Der Vorteil ist, dass du das Masterserverprogramm beliebig verändern kannst, solange die Schnittstelle erhalten bleibt. Typisch für OOP eben.
Es können aber Probleme auftreten. Du musst die Anfragen deines Chatprogramms eindeutig identifizieren. Was passiert, wenn eine falsche Anfrage ankommt? (z.B. könnte sich ein Script als Server ausgeben und eintragen lassen, obwohl es gar kein Server ist.)
Bei der Ausgabe der Serverliste brauchst du dir hingegen keine großen Sorgen machen.

Zitat:

Zitat von hincapie
Beim Absturz eines Servers?
Gute Frage, dafür gibt es ja diesen Thread... :gruebel: :zwinker:
Vielleicht irgendwie mit einem PHP-Script die Erreichbarkeit des Servers überprüfen? :?:

Dafür könnte man einen Cronjob einrichten bzw. das Masterserverprogramm gleich als Dienst auf dem Masterserver laufen lassen.

Ziemlich kompliziert. Ich lasse mich auch gerne belehren, wenn jemand eine bessere Idee hat. =)

hincapie 22. Feb 2008 11:36

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Zitat:

Zitat von Xong
...
Ziemlich kompliziert.
...

Puuh, ich glaube das übersteigt etwas meinen Horizont... :gruebel:
Mit CGI kenn ich mich gar nicht aus, schon gar nicht zusammen mit Delphi... :cry:

@ Xong:
Falls Du genügend Geduld hast, kannst Du mir das ja mal näher erläutern... :chat:

Xong 22. Feb 2008 12:09

Re: Konzeptfrage - Internet-Chat als Freeware, wie?
 
Zitat:

Zitat von hincapie
Puuh, ich glaube das übersteigt etwas meinen Horizont... :gruebel:

Ach was! Ich hab´s auch hinbekommen. :stupid:

Zitat:

Zitat von hincapie
Mit CGI kenn ich mich gar nicht aus, schon gar nicht zusammen mit Delphi... :cry:

Das schöne ist ja, dass es da gar keinen Zusammenhang gibt. :mrgreen:

Zitat:

Zitat von hincapie
Falls Du genügend Geduld hast, kannst Du mir das ja mal näher erläutern... :chat:

Gern, aber erst nach der Arbeit. Ich melde mich heute Abend/Nacht nochmal hier. Vielleicht Editiere ich den Beitrag einfach, also halt die Augen steif... äh offen! :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz