Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie können Sich Clients zu einer Weboberfläche verbinden? (https://www.delphipraxis.net/110121-wie-koennen-sich-clients-zu-einer-weboberflaeche-verbinden.html)

Delphi-Coder 13. Mär 2008 10:21


Wie können Sich Clients zu einer Weboberfläche verbinden?
 
Hallo,

ich habe mal eine etwas komplexere Frage. Dazu vorweg noch eine Anmerkung: Ich habe eine Software, welche 2 Teile hat. Eine Weboberfläche und Clients als Desktopprogramme. Die Clients holen sich Ihre Daten bei jedem Start von der Weboberfläche. Das funktioniert auch sehr gut. Nun möchte ich aber, dass sich die Clients richtig bei der Weboberfläche "anmelden". D.h. ich möchte die Clients nach deren Anmeldung über die Weboberfläche steuern können.
Das wäre auch nicht wirklich ein Problem. Das Problem kommt erst auf, wenn die Clients auf den PCs hinter Routern sind!

Nun habe ich schon gelesen, dass der Router meinen gewünschten Port freischaltet, wenn die Clients auf diesen Port rausgehen wollen. Dadurch spare ich mir das manuelle Freischalten des Ports. Soweit auch noch kein Problem!

Problem: Wie sollen sich die Clients mit meiner Weboberfläche (PHP) auf einem bestimmten Port verbinden? Und müsste nicht eigentlich diese Verbindung sogar während der Client läuft gehalten werden, damit ich ihn steuern und kann und sehen kann wann er nicht mehr aktiv ist?

Ich möchte also so eine Art abgespecktes LogMeIn aufbauen.

Ich hoffe, ihr könnt mir einigie Tipps / Tricks geben!


Vielen Dank im Voraus!
Delphi-Coder

Relicted 13. Mär 2008 10:37

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
also die meisten router sind doch schon recht klug :-)
d.h. wenn du mit deinem programm auf port 80 z.b. dich mit deiner webseite "verbindest" dann hält im normalfall der router die verbindung für eine antwort offen. der router sollte diesen port wieder schließen sobald der client nicht mehr darüber kommuniziert. ich muss gerade gestehen dass mir der genaue begriff für diese technik gerade nicht einfällt. also sobald der client die verbindung aufbaut (und nicht die seite!) sollte es auch keine probleme mit routern geben

gruß
reli

Delphi-Coder 15. Mär 2008 12:19

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
Danke für die Antwort.

Dann wäre ja noch die Frage zu klären, wie lange der Router diese Verbindung über diesen Port offen hält? Oder ... in welchen Zeitabständen muss der Client einen Request zum Server senden, damit diese Verbindung offen bleibt?!

Und wie sende ich dann befehle vom Webmodul (PHP) an den Client?!

Im Prinzip kann ich es ja nach obiger Methode gleich so machen, dass die Befehle zwischengespeichert werden und beim nächsten Request des Clients ausgegeben werden. Aber das ist doch nicht sonderlich elegant, oder?! Mal abgesehen von den Verbindungen und dem Traffic, den das erzeugen würde. Der Client soll ja auf mehreren Hundert Rechnern laufen und ich will jeden einzelnen steuern können.

Sorry, aber ich fange gerade erst an mich mit diesem Thema zu beschäftigen!

Viele Grüße,
Delphi-Coder

Relicted 15. Mär 2008 15:32

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
nunja ich wüsste jetzt nicht dass php aktiv etwas senden könnte...
es wäre nicht schlecht zu wissen was genau kommuniziert wird bzw um was es geht. im normalfall ist aber der client für das aktualisieren der daten verantwortlich - anders wirds nicht gehen.

gruß
reli

Delphi-Coder 15. Mär 2008 15:59

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
Zitat:

Zitat von Relicted
nunja ich wüsste jetzt nicht dass php aktiv etwas senden könnte...

Doch, das geht. Hier ein Beispiel!

Zitat:

Zitat von Relicted
es wäre nicht schlecht zu wissen was genau kommuniziert wird bzw um was es geht.

Letztendlich sollen vom Webmodul nur Befehle (also Klartext) an den Client übertragen werden. Dieser muss dann nur noch schauen, was er da empfängt und welche Aktionen dem zugeordnet sind.

Relicted 15. Mär 2008 16:31

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
ok wieder was dazugelernt (php ist nix für mich ^^ )... ja wo is dann das problem?
nimm anstatt udp eine tcp verbindung. die wird dauerhaft offen gehalten. udp ist ja "fire and forget" denke da wird der router irgendwann dicht machen. mit tcp wird ja eine verbindung offen gehalten. damit sollte der router wissen, dass der client mit diesem ziel dauerhaft kommunizieren will und es sollte problemlos laufen.

gruß
reli

Delphi-Coder 15. Mär 2008 16:36

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
Hmmm...ok. Ich werde mal ein Testprogramm erstellen, um das mal zu testen. Und dann melde ich mich nochmal!

Delphi-Coder 16. Mär 2008 11:53

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
Also, ich hab jetzt ein bisschen getestet: Ich habe mir eine Delphi-Anwendung erstellt, in der ich mittels IdTCPClient zu meinem Webserver auf Port 80 verbinde. Das funktioniert auch soweit und die Verbindung wird auch gehalten. Aber ich habe nachwievor noch folgende Probleme:

a) Wie kann ich in PHP feststellen, dass der Client verbunden ist?

b) Wie kann ich mit PHP diese verbindung nutzen, um den Clients was zu senden?

oder / und

c) Ist vielleicht die ganze Herangehensweise falsch?


Viele Grüße und schönen Sonntag!
Delphi-Coder

mkinzler 16. Mär 2008 11:55

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
Such mal nach Ajax

Delphi-Coder 16. Mär 2008 12:12

Re: Wie können Sich Clients zu einer Weboberfläche verbinden
 
Mit AJAX habe ich schon öfter gearbeitet. Ich sehe jetzt aber nicht, wie AJAX mir bei meinem Problem helfen kann?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.
Seite 1 von 2  1 2      

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