AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

Ein Thema von SearchBot · begonnen am 13. Jun 2020 · letzter Beitrag vom 15. Jun 2020
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
232 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 13. Jun 2020, 20:03
Hallo,

1)
Bitte helft mir im Verständnis:
Wenn ich vom Browser Daten an mein Programm sende, dann ist der Browser der "Server" und mein Programm der "Client"?? Oder umgekehrt?

2)
Diese einfachen Text-Daten will ich aus Javascript schicken (vielleicht ist da ja schon was falsch? Ich habe auch das passende Meta-Tag gesetzt, siehe https://content-security-policy.com/connect-src/ ):

Code:
var sock = new WebSocket('ws://localhost','delphitool');
sock.send("Hallo");
Im meinem Delphiprogramm habe ich die TClientSocket-Komponente so eingestellt:
Code:
ClientType: ctNonBlocking
Host: localhost
Port: 0
Service: delphitool
Ich lasse es gleich beim FormCreate öffnen:
if(ClientSocket1.Active = False) then ClientSocket1.Open;
Dann erzählt es mir jedoch in einer Messagebox beim starten:
Zitat:
Windows-Socket-Fehler: Der angeforderte Name ist gültig, es wurden jedoch keine Daten des angeforderten Typs gefunden (11004), bei API 'ASync Lookup'
Verstehe ich nicht, ich hab ja auch noch keine Daten vom Browser gesendet, das Programm soll ja nur "hinhören" und bei Bedarf den vom js gesandten Text lesen.

Was mache ich falsch?
Muss ich es mit der TServerSocket-Komponente machen (da bekomme ich aber auch diese Fehlermeldung)??

Schön mal Danke fürs Lesen.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.578 Beiträge
 
#2

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 13. Jun 2020, 20:41
Bitte helft mir im Verständnis:
Wenn ich vom Browser Daten an mein Programm sende, dann ist der Browser der "Server" und mein Programm der "Client"?? Oder umgekehrt?
Dann ist dein Programm eher der Server. Eine andere Art, darüber nachzudenken: Welches Stück Software möchtest du zuerst starten (sodass es auf das andere Stück wartet)? Das ist der Server.

Was mir direkt auffällt: Du hast keinen Port definiert. Das musst du aber machen, sonst können die sich ja nicht finden. Also beim Server musst du den vorgeben und der Client sollte dann auf dem gleichen port suchen.
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
232 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 13. Jun 2020, 21:14
Okay, danke schon mal.

Als TServerSocket hatte ich es auch schon, Port auch 8080.

Da hab ich diese Fehlermeldung auch bekommen.

In der Hilfe steht zu "System.Win.ScktComp.TServerSocket.Service"
Zitat:
Bestimmte Port-IDs sind für spezielle Dienste reserviert. Service bietet deshalb eine Möglichkeit, die Server-Schnittstelle für die Socket-Verbindung festzulegen. Für Server-Sockets kann durch die Verwendung von Service (anstatt von Port) sichergestellt werden, dass der Server TCP/IP-Anforderungen an der korrekten Schnittstelle erwartet.
Hab das so verstanden, daß ich entweder mit Port oder mit Service das machen kann.
Im Javascript hat er bei dem WebSocket als Parameter: (adresse, service).
Ich bin mir halt unsicher, was da wo hinkommt, weil ich den WebSocket auch noch nicht öffnen konnte...
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
474 Beiträge
 
#4

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 14. Jun 2020, 11:56
Das geht soo nicht:
https://stackoverflow.com/questions/...t-to-c-winsock
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
232 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 14. Jun 2020, 18:39
Ohweh... die Daten liegen bei mir einen Nanometer nebeneinander im Speicher und ich komme nicht ran
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
474 Beiträge
 
#6

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 14. Jun 2020, 19:08
Du brauchst dir doch nur eine Websocket-Server-Implementierung zu suchen und diese nutzen...
Vielleicht reicht auch ein HTTP-Server? Oder muss es unbedingt websocket sein?
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
232 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 15. Jun 2020, 10:55
Nein, den Tipp mit Websocket hatte ich bekommen, da sah alles ganz easy aus

Ich hab überlegt, ob ich mir mit xampp den Apache als Server starte und damit was machen kann??

Der Weg ist halt und alles lokal: Javascript im Browser -> Delphiprogramm

Unelegant wäre es, die Daten zu sammeln und als Download zu generieren, dann hätte ich zwar die Daten als Datei, aber in vielen kleinen Fragmenten, die ich dann mit dem Delphiprogramm wieder zusammenzusetzen kann.
Aber es gibt sicher auch viel bessere Lösungen?!
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
572 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 15. Jun 2020, 11:55
Möchtest du vielleicht etwas mehr beschreiben, was du genau machst? Vielleicht sind WebSockets (nicht mit den allgemeinen Netzwerk-Sockets bei Delphi verwechseln) ja einfach etwas übertrieben? WebSockets sollen ja vor allem eine wechselseitige Kommunikation zwischen Client und Server im Web erleichtern, mit der es möglich ist, dass der Server (dein Delphi-Programm) eine Information an den Client (den JS im Browser) sendet, ohne dass der Client direkt vorher eine neue Anfrage gesendet hat.

Da du geschrieben hast, dass es dir um "Javascript im Browser --> Delphi-Programm" geht, weiß ich nicht, ob du diese Erweiterung des HTTP-Protokolls überhaupt brauchst.

Falls nicht, dann wärst du vielleicht mit einem einfachen XNLHttpRequest auf JS-Seite und einem "einfachen" WebServer (bei den mitgelieferten Indys bei Delphi dabei) besser und einfacher unterwegs?

Wenn du mit Websockets arbeiten willst, dann gibt es für Delphi ein paar Komponenten, die das wohl können, kosten aber ggf. auch etwas. Ich habe die selber aber noch nicht ausprobiert bzw. gebraucht.
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
232 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 15. Jun 2020, 12:47
Hallo Bbommel,

das ist eine gute Anregung. Das andere wäre ja doch wie mit Raketen auf Ameisen.

Ich möchte einfach nur eine kleine Textnachricht loggen, fortschreitend in eine Datei, die ich dann mit einem Tool auswerte.

Aktuell logge ich die Nachricht in die Browser-Konsole (console.log('bla'). Wenn sich dann ein bisschen angesammelt hat, speichere ich diese Liste bzw copypaste sie in meinen Texteditor in diese fortschreitende Datei.
Das Gefummel will ich halt automatisieren, weil ja auch mal die Webseite unerwartet neu laden kann und dann meine ungesicherten Logs weg sind.

Ich versuche es mal mit deiner Anregung
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
387 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Mit Javascript WebSocket in Localhost an mein Prog. Daten senden?

  Alt 15. Jun 2020, 16:41
Schau dir doch einfach mal die Delphi Webbroker Doku an und wie einfach das damit zu machen ist. Ich habe damit ein vollwertiges Onlineshop-System gemacht und das funktioniert bei vielen Kunden seit Jahren absolut robust und fehlerfrei.

Webbroker ist glaube ich eines der am meist unterschätzten Feature in Delphi.

Geändert von Rolf Frei (15. Jun 2020 um 16:43 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 02:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf