Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit TMSMQTT (https://www.delphipraxis.net/214462-probleme-mit-tmsmqtt.html)

Pflume 15. Jan 2024 17:00

Probleme mit TMSMQTT
 
Hallo,

ich will einen MQTTClient mit Delphi erstellen. Dazu habe ich die Komponente TMSMQTT gewählt.
Zuerst habe ich mich mit "TMSMQTTClient1.Connect();" verbunden. Das funktioniert auch, was ich daran sehe, dass TMSMQTTClient1.IsConnected auf true steht und ich in der Konsole des MQTT Servers sehe, dass es eine neue Session gibt.
Wenn die Verbindung steht bekomme ich sofort einen Fehler beim Client, dass es eine Zeitüberschreitung beim Lesen gibt (Exeption in der Klasse EIdReadTimeout). Diese Fehlermeldung konnte ich umgehen, indem ich im MQTTClient in den TimeOutSettings den Wert für Read auf -1 gesetzt habe.
Auch wird die Verbindung durch automatische Pings nicht am Leben gehalten, obwohl KeepConnectionAlive au true steht. Dieses Problem konnte ich umgehen, indem ich den Wert von KeepAliveInterval erhöht habe.

Wenn ich dann mit "TMSMQTTClient1.Disconnect();" mich disconnecten will, steht dazu nichts im Log des Servers. Ich bin also weiterhin mit dem Server verbunden. Auch bei "TMSMQTTClient1.Ping" sehe ich beim Log des Servers nicht, das irgendetwas ankommt. Das gleiche gilt auch fürs subscriben und publischen und wahrscheinlich auch für alle anderen Befehle.
Ich kann also im Log des Servers nur sehen, dass ich mich am Anfang verbunden habe. Dann sehe ich nichts mehr, bis ich die Anwendung vollständig stoppe, da dann "Connection stopped" im Log des Servers steht steht.
Den Server habe ich mit C# programmiert und auch mit einem C# Client getestet. Das Logging ist auf dem Server an.
(Ich habe es auch mit einem Mosquitto Server und einer von Git heruntergeladenen Version probiert [https://github.com/quini27/MQTT-clie...n-for-Windows]. Das Ergebnis ist das gleiche.)

Kann mir irgendwer sagen, welchen Fehler ich gemacht habe und wie man den MQTT Client zum laufen bringen könnte?

Vielen Dank im voraus
Max Pflume

TurboMagic 15. Jan 2024 20:37

AW: Probleme mit TMSMQTT
 
Hallo,

falls du hier keine Hinweise dazu bekommen solltest: TMS hat auch ein Support Forum!
Bzw. kann man auch ein Ticket bei denen aufgeben.

Grüße

TurboMagic

fred.ahrens 16. Jan 2024 09:38

AW: Probleme mit TMSMQTT
 
Hatte vor ein paar Tagen auch das Problem.
Irgendwo habe ich dann gefunden, dass man innerhalb der IDE die Exception bzgl. EIdReadTimeout ignorieren soll.
Man kann das auch in den Delphi Options unter "Language Exceptions" eintragen und von der IDE dann ignorieren lassen.

Hier funktioniert jetzt alles wie es soll.

salvadordf 16. Jan 2024 13:47

AW: Probleme mit TMSMQTT
 
First of all, sorry for writing in English.

The EIdReadTimeout exception is expected and handled but the component.
Use the default property values and use the code in the demos as a template for your application.
Many functions in that component are asynchronous, including "disconnect".

For more questions or bug reports please use the official TMS support forum.

Pflume 18. Jan 2024 09:13

AW: Probleme mit TMSMQTT
 
Danke für die Hilfe.
Ich habe eingestellt, dass die Fehlermeldung ignoriert werden soll und jetzt funktioniert es :)

BergLoewe 9. Mär 2024 15:05

AW: Probleme mit TMSMQTT
 
Hallo,

ich wollte mich hier mal dranhängen. Ich habe einen ESP mit MQTT, der auf einen den HiveMQ-Broker schreibt. Im HiveMQ(https://www.hivemq.com/demos/websocket-client/) kann ich mir das auch ansehen, publishen und subcribben, alles chic.
Jetzt wollte ich von Delphi(11) aus auf den Broker zugreifen. Ich habe mir die TMS-Komponente in der Trialversion gezogen, ein (geräteübergreifendes) Formular genommen, den MQTTClient draufgesetzt, dessen Brokeradresse und Port eingetragen. Beim Connecten kommt eine Fehlermeldung, dass die SSL-Bibliothek fehle.
HiveMQ besteht auf SSL und dem 8884-Port. Setz ich im MQTTClient SSL auf False, kommt eine Exeption "Zeitüberschreitung beim Lesen".

Wie käme man denn da weiter?

jaenicke 9. Mär 2024 21:55

AW: Probleme mit TMSMQTT
 
Zitat:

Zitat von BergLoewe (Beitrag 1534391)
Beim Connecten kommt eine Fehlermeldung, dass die SSL-Bibliothek fehle.

Ich gehe mal davon aus, dass die OpenSSL Bibliotheken gemeint sind. Die musst du separat herunterladen und in dein Anwendungsverzeichnis legen.

Welche DLLs deine Anwendung wo sucht siehst du übrigens mit dem Process Monitor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 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