![]() |
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 [ ![]() 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 |
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 |
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. |
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. |
AW: Probleme mit TMSMQTT
Danke für die Hilfe.
Ich habe eingestellt, dass die Fehlermeldung ignoriert werden soll und jetzt funktioniert es :) |
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( ![]() 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? |
AW: Probleme mit TMSMQTT
Zitat:
Welche DLLs deine Anwendung wo sucht siehst du übrigens mit dem ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 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