Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Einfaches Kommunikationsprogramm (https://www.delphipraxis.net/207006-einfaches-kommunikationsprogramm.html)

MechMac666 22. Feb 2021 07:26

AW: Einfaches Kommunikationsprogramm
 
Zitat:

Zitat von mytbo (Beitrag 1483458)
Zitat:

Zitat von MechMac666 (Beitrag 1483457)
Gibts da noch etwas anderes?

Wenn du meiner Empfehlung aus dem zweiten Post folgst, hast du eine Lösung mit WebSockets in enterprise-quality.

So, ich habe das mal getestet. Das Problem ist hierbei das man einen Server braucht.
Also einen wo man selbst bestimmen darf was drauf laufen soll.
Selbst wenn ich mir dafür extra einen Computer kaufe, kenne ich ja immer noch nicht die IP Adresse von dem Ding. (Zumindest nicht wenn die Verbindung neu hergestellt wurde)
Dyn DNS habe ich letztens gekündigt, da zu teuer.



EDIT: Ich habe mir jetzt nen Mini-PC bestellt und nutze das Dyn DNS der Fritz box. Damit werde ich mal weiter probieren...

mschaefer 22. Feb 2021 08:03

AW: Einfaches Kommunikationsprogramm
 
Mir fallen dann noch 2 Möglichkeiten ein:

A. Du hast eine Webseite mit Datenbank

Du greifst per PHP Tunnel auf die Datenbank zu und alle Sicherheitsaspekte löst Du über die Datenbank
PHP-Tunnel via MySql von Andreas
B. Du hast eine Webseite mit FTP

Der Server hat FTP-Zugriff und dieser veröffentlicht seine IP auf der Seite für das Lesen von den Clients.
Danach bauen die Clients eine direkte Verbindung zum Server auf, Dein lokaler PC, über eine Port den Du am
Router freigeben hast. Wenn Du dann die IP hast kannst Du auch das Enterprise-Beispiel nehmen.

MechMac666 22. Feb 2021 09:27

AW: Einfaches Kommunikationsprogramm
 
Zu dem mORMot habe ich gerade feststellen müssen das der WebSocket Kram offensichtlich nicht für Android einsetzbar ist.
Es scheitert schon an den Units selbst, ohne das ich irgendetwas programmiert hätte.

Leider ist bei Delphi selbst auch nix dabei (FMX).
Ich suche mal weiter.

Beach 22. Feb 2021 11:12

AW: Einfaches Kommunikationsprogramm
 
Zitat:

Zitat von MechMac666 (Beitrag 1483483)
[...]
Dyn DNS habe ich letztens gekündigt, da zu teuer.
[...]

Vielleicht auch ne Alternative:
https://selfhost.de/cgi-bin/selfhost?p=cms&article=free

mytbo 22. Feb 2021 11:28

AW: Einfaches Kommunikationsprogramm
 
Zitat:

Zitat von MechMac666 (Beitrag 1483491)
Zu dem mORMot habe ich gerade feststellen müssen das der WebSocket Kram offensichtlich nicht für Android einsetzbar ist.

In deinem Eingangspost stand nichts von Android sondern nur Delphi Programm.

Im Verzeichnis CrossPlatform liegen Units, die laut Beschreibung mit "compile with Delphi for any platform (including NextGen for mobiles), with FPC 2.7 or Kylix, and with SmartMobileStudio 2.1.1". Die WebSocket Unterstützung in den CrossPlatform Units wird nicht erwähnt.

Wenn du auf dem Client WebSocket nutzen willst, dann kannst du die WebApp auch mit TMS WebCore schreiben. Da gibt es eine TWebSocketClient Klasse. SmartMobileStudio hat auch eine TW3WebSocket Klasse. Auch in Lazarus gibt es Unterstützung für Websockets. Damit sollte Android möglich sein. Ich habe angefangen für WebApps TMS WebCore zu nehmen, oder kämpfe mit JavaSript.

Wenn dein Budget sehr knapp ist, mache folgendes: Besorge dir einen VServer Linux bei einem Provider deines Vertrauens, z.B. Webtropia, für 2,0 EUR/Monat, dann hast du deine eigene IPv4 Adresse. Compiliere den Server mit FPC. FPC, Lazarus ID und mORMot lassen sich sehr einfach mit FPCUpDeluxe installieren. Genaue Beschreibung in der mORMot Hilfe.

Bis bald...
Thomas

MechMac666 23. Feb 2021 09:35

AW: Einfaches Kommunikationsprogramm
 
Ich habe gerade mal versucht den mORMot Client mit http://www.websocket.org/echo.html zu verbinden.
Das klappt nicht. Es scheint eine völlig andere "Technik" dahinter zu stecken.
Auch andere Versuche waren erfolglos.
Dieses mORMot kann man wohl nur mit mORMot verwenden.
Allein folgendes "Client.WebSocketsUpgrade(PROJECT31_TRANSMISSION_K EY)"
habe ich in keinem php, Java oder sonst was für Scripten finden können. Da ist nie die Rede von einem Key.

Ich hätte sonst versucht für die Android Geschichte ein php Script auf einem Server zwischen zu schalten.
Oder auch INDY Lösungen (Clienten) habe ich schon gesehen, aber all das nützt ja nix wenn es nicht kompatibel zum mORMot Server ist...

mytbo 23. Feb 2021 13:32

AW: Einfaches Kommunikationsprogramm
 
Zitat:

Zitat von MechMac666 (Beitrag 1483561)
Dieses mORMot kann man wohl nur mit mORMot verwenden.
Allein folgendes "Client.WebSocketsUpgrade(PROJECT31_TRANSMISSION_K EY)"

mORMot kann nicht nur mit sich selbst kommunizieren, verwendet aber als Default oft optimierte Einstellungen für die interne Nutzung.

Die Beschreibung zur Funktion WebSocketsUpgrade() der verwendeten Klasse erklärt dein Problem. In der Hilfe steht folgendes:
Code:
/// upgrade the HTTP client connection to a specified WebSockets protocol
// - the Model.Root URI will be used for upgrade
// - if aWebSocketsAJAX equals default FALSE, it will use 'synopsebinary'
// i.e. TWebSocketProtocolBinaryprotocol, with AES-CFB 256 bits encryption
// if the encryption key text is not '' and optional SynLZ compression
// - if aWebSocketsAJAX is TRUE, it will register the slower and less secure
// 'synopsejson' mode, i.e. TWebSocketProtocolJSON (to be used for AJAX
// debugging/test purposes only)
// and aWebSocketsEncryptionKey/aWebSocketsCompression parameters won't be used
// - once upgraded, the client would automatically re-upgrade any new
// HTTP client link on automatic reconnection, so that use of this class
// should be not tied to a particular TCP/IP socket - use OnWebsocketsUpgraded
// event to perform any needed initialization set, e.g. SOA real-time
// callbacks registration
// - will return '' on success, or an error message on failure
Die Beschreibung findest du in der Unit mORMotHttpClient oder der Hilfe. Suche einfach im mORMot Quelltext nach WebSocketsUpgrade() und lese die Hilfe zu den einzelnen Implementierungen. Die Hilfe ist umfangreich und beschreibt vieles sehr ausführlich.

Einen Blog Artikel über die Verwendung von WebSockets in TMS WebCore habe ich hier gefunden. Vielleicht hilft es dir weiter.

Bis bald...
Thomas

stahli 23. Feb 2021 17:19

AW: Einfaches Kommunikationsprogramm
 
@MechMac666

Ich habe mal so eine asynchrone Kommunikation für einen Server und mehrere Clients gebaut: https://www.delphipraxis.net/190482-...ockettest.html
Das wird für Dich nicht so ganz passen, aber vielleicht ist es mal interessant zum durchstöbern.

Gerade habe ich das mal in einem anderen Projekt eingesetzt, das ging wirklich total easy...
Zum probieren wäre das vielleicht mal möglich...

MechMac666 23. Feb 2021 21:38

AW: Einfaches Kommunikationsprogramm
 
@Stahli
Vielen Dank dafür. Ich werde es mir ansehen.

Was das andere Betrifft:
Ich habe gemäß der Beschreibung den Key und die Kompression aus WebSocketsUpgrade() im Client herausgenommen.
Dennoch konnte ich nicht mit dem Echo-Server verbinden.
Auch in die andere Richtung war es erfolglos:
Der Versuch Browser-basierte WebSocket Clienten mit dem ChatServer zu verbinden.
Ich habe unzählige Versuche getätigt. Kein PHP bzw. Javascript basierter WebSocket Client konnte sich mit dem ChatServer verbinden.
Im Server habe ich auch den Key leer gelassen und Kompression deaktiviert. (Auch dieses Ajax hatte ich mal raus, hat aber nichts gebracht)

MechMac666 25. Feb 2021 17:31

AW: Einfaches Kommunikationsprogramm
 
Ich habe nun eine halbwegs brauchbare Lösung gefunden.
Die Demo31 (EchoServer) lässt sich als chat umbauen. Sie ist mit den WebSockets eines Browsers kompatibel.
Als Windows Client ist leider nichts in dem Paket dabei, aber ich habe in den weiten des Webs etwas auf Indy Basis gefunden.
Unter "IdWebSocketSimpleClient" wird man fündig.
Damit konnte ich den EchoServer erreichen.

Ob letzteres unter Android läuft weiß ich nicht, aber im "Notfall" geht dann der Browser.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.
Seite 2 von 3     12 3      

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