Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Nachricht von Webseite an mein Programm schicken - wie? (https://www.delphipraxis.net/127174-nachricht-von-webseite-mein-programm-schicken-wie.html)

Grolle 8. Jan 2009 20:27


Nachricht von Webseite an mein Programm schicken - wie?
 
Hallo,

ich bräuchte da mal nen Ansatz. Ich möchte von meiner Webseite mit Hilfe von PHP (oder Perl) eine Nachricht an mein
lokales Delphiprogramm senden. Es reicht ein kurzer String. Mail wäre eine Möglichkeit, die aber lokal angestoßen werden
muss - kommt also nicht in Frage.

Viele Grüße...

mkinzler 8. Jan 2009 20:29

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Stichwort: AJAX

Meflin 8. Jan 2009 20:29

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Liegt dieses Programm auf dem Server oder nicht?

Wenn ja: http://de.php.net/manual/de/function.proc-open.php

Grolle 8. Jan 2009 20:31

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Hi,

nein das (Delphi)Programm liegt hier auf meinem Rechner (DynDns vorhanden).

Viele Grüße

Meflin 8. Jan 2009 20:33

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Grolle
nein das Programm liegt hier auf meinem WinRechner (DynDns vorhanden).

Hm, dann könntest du mittels Sockets eine Verbindung zu deinem Programm ausfbauen.
http://de.php.net/sockets

In dem müsstest du dann natürlich eine Socket implementieren.

Valle 8. Jan 2009 20:33

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von mkinzler
Stichwort: AJAX

Geht nur auf der gleichen Domain. Und ich glaube das sollte auch schon Serverseitig passiern.

Hier wird dir geholfen ;-)

Mit freundlichen Grüßen,

Valle

mkinzler 8. Jan 2009 20:37

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Geht nur auf der gleichen Domain. Und ich glaube das sollte auch schon Serverseitig passiern.
:gruebel:
Die Benutzer einer Ajax-Webseite sind sehr selten in der gleichen Domäne

Meflin 8. Jan 2009 20:38

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Bei AJAX muss doch die Anfrage aber auch vom Client kommen, und das wollte Grolle ja gerade nicht :gruebel:

mkinzler 8. Jan 2009 20:40

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Der Client ( Programm) muss sich am Server anmelden. Der eigentliche Datentransfer wird dann aber vom Server ausgelöst

Valle 8. Jan 2009 20:41

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von mkinzler
Zitat:

Geht nur auf der gleichen Domain. Und ich glaube das sollte auch schon Serverseitig passiern.
:gruebel:
Die Benutzer einer Ajax-Webseite sind sehr selten in der gleichen Domäne

Nicht Domäne - Domain! Wenn du eine Webseite über www.example.com aufrufst, dann kann diese ihre Ajax-Requests auch nur an www.example.com senden. Du kannst nicht per Ajax die Domain www.example.org aufrufen! ;-)

Zitat:

Zitat von Meflin
Bei AJAX muss doch die Anfrage aber auch vom Client kommen, und das wollte Grolle ja gerade nicht :gruebel:

Und das sowieso. :mrgreen:

Mit freundlichen Grüßen,

Valle

mkinzler 8. Jan 2009 20:46

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Er wollte eine einfache Möglichkeit, sich von seiner Webseite Benachrichtigen zu lassen und da ist AJAX imho die einfachste Möglichkeit. Wenn das Programm nicht läuft, kann es auch nichts empfangen, ein Senden wäre dann auch nicht nötig. Und hat zudem auch den Vorteil, dass es bei einem Router funktioniert.

Valle 8. Jan 2009 20:47

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von mkinzler
Er wollte eine einfache Möglichkeit, sich von seiner Webseite Benachrichtigen zu lassen und da ist AJAX imho die einfachste Möglichkeit. Wenn das Programm nicht läuft, kann es auch nichts empfangen, ein Senden wäre dann auch nicht nötig. Und hat zudem auch den Vorteil, dass es bei einem Router funktioniert.

In der Tat einfach - aber dann muss Webseite + Der zu benachrichtigende Server unter der gleichen Domain erreichbar sein. Und das ist glaube ich nicht der Fall. Aber lassen wir das und warten was Grolle sagt. ;-)

Mit freundlichen Grüßen,

Valle

mkinzler 8. Jan 2009 20:50

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Welcher Server?
Zitat:

Ich möchte von meiner Webseite ... eine Nachricht an mein
lokales Delphiprogramm senden.

Valle 8. Jan 2009 20:51

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von mkinzler
Welcher Server?
Zitat:

Ich möchte von meiner Webseite ... eine Nachricht an mein
lokales Delphiprogramm senden.

Das lokale Delphi-Programm ist der Server. Zumindest interpretiere ich das so. Ich denke mal, dass er mit "lokal" "bei ihm zu Hause" meint, während seine Webseite hingegen wohl kaum bei ihm zu Hause gehostet ist.

Mit freundlichen Grüßen,

Valle

Matze 8. Jan 2009 20:53

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Wenn ich das richtig verstanden habe, dann liegt Stefans Programm auf seinem Windows-PC zu Hause und das Skript soll auf einem Online-Server betrieben werden (der Server ist aber nicht sein PC). Sein PC ist per DynDNS unter einer festen Adresse erreichbar, aber der Server hat eine IP oder Domain, die sich von der des PCs unterscheidet.
Somit ist AJAX nicht anwendbar, da die Browser das aus Sicherheitsgründen noch nicht unterstützen. Soweit ich weiß, soll das aber noch irgendwann kommen.

Grüße, Matze

Grolle 8. Jan 2009 20:53

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Hi,

vom Webserver auf dem meine Seite gehostet wird auf meinen Rechner, und zwar nur, wenn ich online bin.
Also von Webseite zum Delphi Programm. Gibts irgendwo ein Sockets-Tutorial oder ein Beispiel?

Viele Grüße ...

Edit: Argh roter Kasten

mkinzler 8. Jan 2009 20:54

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Ja schon klar. Und das ist ja der Client, welcher sich beim Start am Server für die Benachrichtigung registriert. Anschliessend können die Benachrichtigungen asynchron vom Server gepusht werden.

Valle 8. Jan 2009 20:54

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Genau so meinte ich das, danke Matze.
Ich war wohl wieder zu blöd das zu formulieren. :?

Mit freundlichen Grüßen,

Valle

Namenloser 8. Jan 2009 20:58

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Valle
Nicht Domäne - Domain! Wenn du eine Webseite über www.example.com aufrufst, dann kann diese ihre Ajax-Requests auch nur an www.example.com senden. Du kannst nicht per Ajax die Domain www.example.org aufrufen! ;-)

Bist du dir da sicher? :gruebel: ich weiß, dass mannicht von einer Internetseite aus auf lokale Dateien zugreifen kann 8was ja auch Sinn macht) - aber auch nicht auf andere Internetadressen? Ich kann doch auch Bilder und andere Objekte aus anderen Webseiten einbetten.

Man könnte es aber über ein PHP-Script umleiten, wenn PHP verfügbar ist, und der Aufbau von Verbindungen zu anderen Adressen erlaubt ist.

Meflin 8. Jan 2009 21:00

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Grolle
Gibts irgendwo ein Sockets-Tutorial oder ein Beispiel?

Zum Thema Sockets solltest du massig finden können, z.B. hier:
http://delphi.about.com/od/networking/l/aa112602a.htm

Zu Sockets von PHP-Seite: Die verlinkte PHP-Doku ist eigentlich ziemlich gut ;)

Valle 8. Jan 2009 21:04

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von NamenLozer
Bist du dir da sicher? :gruebel: ich weiß, dass mannicht von einer Internetseite aus auf lokale Dateien zugreifen kann 8was ja auch Sinn macht) - aber auch nicht auf andere Internetadressen? Ich kann doch auch Bilder und andere Objekte aus anderen Webseiten einbetten.

Ich bin mir eigentlich sehr sicher, dass ich das schon oft gelesen habe, da ich mich öfters über Web-Sicherheit informiere. Aber ich finde auf die Schnelle jetzt auch keine Quelle. :?

Edit:// Schau mal hier im letzten Absatz unter "Geschichte":

Zitat:

Zitat von Wikipedia
Eine zweite Spezifikation, die Domain-übergreifende Abfragen (d. h. die Daten, die das Skript abruft, befinden sich auf einer anderen Domain als es selbst) erlauben und damit über die bisherigen Implementierungen hinausgehen soll, ist beim W3C bereits in Arbeit.

Zitat:

Zitat von NamenLozer
Man könnte es aber über ein PHP-Script umleiten, wenn PHP verfügbar ist, und der Aufbau von Verbindungen zu anderen Adressen erlaubt ist.

Dann kann man's auch gleich mit PHP machen. :mrgreen: Man hat vielleicht nur den Vorteil, das man die erhöhte Ladezeit z.B. wegen Timeouts oder einfach wegen der Verbindung nicht hat. Bei Leuten ohne JavaScript funktioniert das aber dann natürlich nicht.

Mit freundlichen Grüßen,

Valle

Grolle 8. Jan 2009 21:04

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Meflin
Zum Thema Sockets solltest du massig finden können, z.B. hier:
http://delphi.about.com/od/networking/l/aa112602a.htm

Sowas hatte ich gesucht. Danke!

Namenloser 8. Jan 2009 21:15

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Valle
Dann kann man's auch gleich mit PHP machen. :mrgreen: Man hat vielleicht nur den Vorteil, das man die erhöhte Ladezeit z.B. wegen Timeouts oder einfach wegen der Verbindung nicht hat. Bei Leuten ohne JavaScript funktioniert das aber dann natürlich nicht.

Ich weiß ja nicht was er machen will.

Der Jan 9. Jan 2009 08:17

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Eine Alternative wäre die gute alte Email. Die Website schickt z.B. über PHP eine Mail mit den nötigen Daten und das lokale Programm fragt dann regelmäßig das Postfach ab und verarbeitet die Mails. Mache ich bei paar Projekten so. Ist nicht instant und sicher auch nicht die eleganteste Lösung, aber funktioniert.

Meflin 9. Jan 2009 10:09

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Der Jan
Eine Alternative wäre die gute alte Email. Die Website schickt z.B. über PHP eine Mail mit den nötigen Daten und das lokale Programm fragt dann regelmäßig das Postfach ab und verarbeitet die Mails. Mache ich bei paar Projekten so. Ist nicht instant und sicher auch nicht die eleganteste Lösung, aber funktioniert.

Und genau das hatte er in seinem Eingangspost schon ausgeschlossen ;)

Ralf Kaiser 9. Jan 2009 10:44

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Hallo,

Zitat:

Zitat von Grolle
ich bräuchte da mal nen Ansatz. Ich möchte von meiner Webseite mit Hilfe von PHP (oder Perl) eine Nachricht an mein lokales Delphiprogramm senden.

Was löst denn auf deinem Server diesen Sendevorgang aus? Hast du die Möglichkeit ein Timerskript laufen zu lassen oder wird eine Seite auf dem Server aufgerufen?

Von selbst macht ein normaler Webserver so etwas nämlich nicht. Webserver reagieren immer nur auf Anfragen von aussen!

Zitat:

Zitat von Grolle
Es reicht ein kurzer String. Mail wäre eine Möglichkeit, die aber lokal angestoßen werden
muss - kommt also nicht in Frage.

Wie schon gesagt: Wenn "von aussen" keine Anfrage an den Server geschickt wird dann führt dieser von sich aus keine einzige Zeile Code aus (wobei eine Ausnahme ein Skript wäre das über einen Timermechanismus wie "cron" oder, unter einem Windows-Server "geplante Aufgaben" die Aufgabe erledigt)

Ciao,
Ralf

Grolle 9. Jan 2009 13:57

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Hallo,

Zitat:

Zitat von Alfi001
Was löst denn auf deinem Server diesen Sendevorgang aus? Hast du die Möglichkeit ein Timerskript laufen zu lassen oder wird eine Seite auf dem Server aufgerufen?

der Benutzer Webseitenbetrachter soll z. B. nen Link anklicken. Crons habe ich auch zur Verfügung,
ist aber hier nicht sinnvoll. Vielleicht nochmal zur Erklärung, was das alles soll:
Ich schreibe derzeit ein Support-Tool. Sobald ich mich an meinem Rechner anmelde, schiebt das Tool
ein Script auf meinen Server, welches dem Betrachter meiner Seite anzeigt: "Support sitzt am Rechner und ist erreichbar".
Jetzt folgt eben die Kontaktaufnahme in meine Richtung.

Viele Grüße...

Ralf Kaiser 9. Jan 2009 14:46

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Grolle
Ich schreibe derzeit ein Support-Tool. Sobald ich mich an meinem Rechner anmelde, schiebt das Tool ein Script auf meinen Server, welches dem Betrachter meiner Seite anzeigt: "Support sitzt am Rechner und ist erreichbar".

Wenn du dich auf deinem Rechner abmeldest dann schieb doch mit dem selben Tool ein anderes Script auf den Server das dann anzeigt "Im Moment ist niemand zu Hause".

[EDIT:]

oder geht es dir darum Support-Afragen mit dem Delphi-Tool vom Server aus entgegenzunehmen wenn du anwesend bist?

Dann ist ein Delphi-Tool eigentlich nicht das richtige. Installier dir doch auf dem lokalen Rechner den IIS und kommuniziere über einen AJAX-basierten Chat (ASP.NET) mit dem Support-Kunden auf dem Server (AJAX wurde hier ja bereits vorgeschlagen). AJAX-basierte Chatsysteme gibt es eine Menge (viele davon auf frei verfügbar)

Douglas Quintaine 9. Jan 2009 15:28

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Wieso so kompliziert? Man könnte es anders herum machen, nicht die Website schickt Daten an das Programm, sondern die Website stellt Daten bereit die das Programm abruft. Je nachdem worum es geht könnte man es völlig simpel machen das du via PHP deine "Nachricht" in ne DB oder Datei speicherst und dein Programm prüft ob die aktuelle Nachricht bereits bekannt ist, passiert nichts. Kennt er die Nachricht nicht, ist es ne neue Nachricht. Dann kannst du entsprechend reagieren.

Grolle 9. Jan 2009 15:43

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Zitat:

Zitat von Douglas Quintaine
Wieso so kompliziert? Man könnte es anders herum machen, nicht die Website schickt Daten an das Programm, sondern die Website stellt Daten bereit die das Programm abruft. Je nachdem worum es geht könnte man es völlig simpel machen das du via PHP deine "Nachricht" in ne DB oder Datei speicherst und dein Programm prüft ob die aktuelle Nachricht bereits bekannt ist, passiert nichts. Kennt er die Nachricht nicht, ist es ne neue Nachricht. Dann kannst du entsprechend reagieren.

Das ist dann aber nicht "Live". Der Weg geht dann weiter zum Chat.

Douglas Quintaine 9. Jan 2009 15:44

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Wieso nicht live? Dein Programm könnte doch sekündlich die Nachricht abrufen und überprüfen?

Grolle 9. Jan 2009 15:47

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Hi,

wenn es dann aber ein paar Stunden nicht in Anspruch genommen wird, werden unnötig Ressourcen verschwendet.

Viele Grüße ...

Douglas Quintaine 9. Jan 2009 15:49

Re: Nachricht von Webseite an mein Programm schicken - wie?
 
Du könntest jeder Nachricht eine ID geben, welche dann Programm abgleicht. Nur wenn er die ID nicht kennt, holt er sich die Nachricht. Und sag mir bitte nicht, dass 20 Bytes zu laden (oder 1.200 Bytes pro Stunde) Verschwendung von Ressourcen ist. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.

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