![]() |
Einfaches Kommunikationsprogramm
Hallo,
Auf welcher Basis könnte man ein einfaches Kommunikationsprogramm erstellen, welches im Internet funktioniert. Also irgendwas in der Richtung: Server -> PHP (DB ist vorhanden) Client -> Delphi Programm Nicht öffentlicher Einsatz. Personenkreis ist festgelegt. Es sollen Textnachrichten versendet werden. Ich bin mir noch nicht sicher ob eine Art Chat reicht oder ob die Nachrichten auch direkt zu einem Clienten zugestellt werden sollen. Letzteres wird aber wahrscheinlich zu kompliziert. Oder ein anderer Ansatz: Wenn man Nachrichten nicht verpassen möchte, was bietet sich da an? Verschlüsselte Textdateien auf dem Server schreiben wo drin steht für wen sie sind und die Nachricht? Gruß, Andreas |
AW: Einfaches Kommunikationsprogramm
Ich bringe mal das Open Source Framework mORMot ins Spiel. mORMot ist von D7 bis 10.4 verfügbar. Den Download findest du
![]() Ein Beispiel für einen Chat findest du ![]() mORMot musst du nicht installierten. Es reicht aus, die entsprechenden Bibliothekspfade einzufügen. Die eigentliche Arbeit ist mit mORMot oft schnell erledigt, das Problem dürfte sein, dich in mORMot einzuarbeiten. Es steht eine ausführliche ![]() ![]() Bis bald... Thomas |
AW: Einfaches Kommunikationsprogramm
Willst du das unbedingt selber schreiben? Es gibt da bestimmt auch schon viel Fertiges?
|
AW: Einfaches Kommunikationsprogramm
Ich würde da was auf Basis
![]() Ist sehr schlank, und nimmt Dir die Basiskonfigurationen im Backend schon ab. Da lässt sich dann per REST-Schnittstelle leicht drauf zugreifen und notfalls erweitern. Ein Messaging-System ist erstmal nicht drin, soweit ich weiss, könnte aber sicher erweitert werden, falls nötig. |
AW: Einfaches Kommunikationsprogramm
Danke für die Antworten.
Ich werde mir die Sachen mal ansehen. Grundsätzlich will ich nicht alles selber machen, wenn ich mir dadurch Arbeit spare nehme ich auch gern was fertiges. Meine Gedanken gingen zuletzt auf den Verzicht von Live-Chat zugunsten einer Messaging Funktion. Dies könnte im einfachsten Fall mit Textdateien oder bequemer über eine DB gemacht werden. Ich sehe es nur problematisch das ich die Clienten doch nicht im Minutentakt entweder auf Files im Web oder SQL-Abfragen pollen kann. Oder bin ich da zu "empfindlich"? Die Clienten wissen ja sonst nicht das etwas "zum abholen" für sie bereit steht. Oder aber man nimmt den Server nur zur Vermittlung, aber ich wüßte gerade beim besten Willen nicht wie zwei oder mehr Applikationen über TCP außerhalb des eigenen Netztes kommunizieren können. (Port-Weiterleitung am Router ausgenommen) |
AW: Einfaches Kommunikationsprogramm
.. wenn sich eine Client mit dem Server über TCP verbunden hat,
dann besteht eine bidirektionale Verbindung. Sendet ein Client etwas neues - dann kann der Server die Liste der verbundenen Clients abarbeiten und die Clients mit den Neuigkeiten updaten. Grüße Klaus |
AW: Einfaches Kommunikationsprogramm
Oder WebSockets...
|
AW: Einfaches Kommunikationsprogramm
Hm, WebSockets funktionieren nicht.
Also sowas: "socket_create(..." Ich hatte mal nach TCP gesucht, aber irgendwie lande ich immer bei der o.g. Sache. Gibts da noch etwas anderes? Könnte jemand seine Gedanken zu der "Datenbank-Geschichte" teilen? -Hinsichtlich einer Abfragefrequenz von 1 min. |
AW: Einfaches Kommunikationsprogramm
Zitat:
Bis bald... Thomas |
AW: Einfaches Kommunikationsprogramm
Auf SourceForge gibt es das DBBetAdapter Projekt. Ist zwar für Lazarus entwickelt, hat aber auch die dpk Files dabei.
|
AW: Einfaches Kommunikationsprogramm
Zitat:
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... |
AW: Einfaches Kommunikationsprogramm
Mir fallen dann noch 2 Möglichkeiten ein:
A. Du hast eine Webseite mit Datenbank B. Du hast eine Webseite mit FTP
|
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. |
AW: Einfaches Kommunikationsprogramm
Zitat:
![]() |
AW: Einfaches Kommunikationsprogramm
Zitat:
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 |
AW: Einfaches Kommunikationsprogramm
Ich habe gerade mal versucht den mORMot Client mit
![]() 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... |
AW: Einfaches Kommunikationsprogramm
Zitat:
Die Beschreibung zur Funktion WebSocketsUpgrade() der verwendeten Klasse erklärt dein Problem. In der Hilfe steht folgendes:
Code:
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.
/// 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 Einen Blog Artikel über die Verwendung von WebSockets in TMS WebCore habe ich ![]() Bis bald... Thomas |
AW: Einfaches Kommunikationsprogramm
@MechMac666
Ich habe mal so eine asynchrone Kommunikation für einen Server und mehrere Clients gebaut: ![]() 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... |
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) |
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. |
AW: Einfaches Kommunikationsprogramm
Zitat:
Bis bald... Thomas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr. |
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