Vielleicht kann mir jemand helfen... Mit dem Programm verbinde ich mich mit einem MQTTBroker. Solange der richtige BenutzerName und das Passwort benutzt werden ist alles in Ordnung. Wenn ich so wie hier einen falschen Benutzernamen und ein falsches Passwort verwende, wird der Prozess beim Schließen des Programms nicht beendet. Woran liegt das und wie kann man das beheben? public Form1() { InitializeComponent(); try { mClient = new MqttClient("starDeko"); mClient.MqttMsgPublishReceived += client_MqttMsgPublishReceived; clientId = Guid.NewGuid().ToString(); byte x = mClient.Connect(clientId,"user2","passwd1",false,3); if (!mClient.IsConnected) { textBox1.Text += x.ToString() + " nicht verbunden !!!\n"; mClient.Disconnect(); } } catch(Exception) {} } } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { if (mClient != null) if (mClient.IsConnected) mClient.Disconnect(); }
Holger74 schrieb: > MQTT-Client in C# Dein Code sieht verdammt nach dem Paho MQTT Client für C# (M2Mqtt) aus. Nein, leider keine praktische Erfahrung damit. Paho MQTT Client für C und Paho MQTT für JS habe ich schon benutzt. Was mir bei kurzem drauf schauen auf die Paho C# Webseiten[1] auffällt ist, dass es zwar die gleichen kurzen Pseudo-Code Schnipsel gibt wie für Paho C, aber nicht die passend kurzen Code Beispiele. Hab ich die einfachen Beispiele übersehen? (Beim Paho C im Ordner: ./paho.mqtt.c/src/samples/ MQTTClient_publish.c + MQTTClient_subscribe.c) [1] https://www.eclipse.org/paho/clients/dotnet/ https://github.com/eclipse/paho.mqtt.m2mqtt/tree/master/M2Mqtt https://m2mqtt.wordpress.com/using-mqttclient/ Einfach mal kurz geraten. > catch(Exception) Bis du sicher, dass sich die Exceptions nicht in die Quere kommen? In der Implementierung von mClient.Connect() selbst wird die Exception MqttConnectionException(...) geworfen. > client_MqttMsgPublishReceived Eine passende Methode hast du hoffentlich auch implementiert? void client_MqttMsgPublished(object sender, MqttMsgPublishedEventArgs e) { /*your code here*/}
Vielen Dank für Eure Hilfe. Ich komme trotzdem nicht weiter. Das try/catch ist entfernt und eine client_MqttMsgPublished(...) existiert auch. Connect gibt den richtigen Fehlercode ("bad username...") zurück. Das Form läßt sich schließen, nur der Prozess bleibt noch vorhanden. Das gleiche passiert auch bei einem connect ohne username und password. Ich habe auch noch kein Beispiel gesehen, wo der Erfolg von connect abgefragt wird und was passiert, wenn das connect fehlschlägt. Wo kann man den Fehler noch suchen? Wie sieht ein richtiger Dispose für das Objekt aus?
Es wäre schon hilfreich wenn Du erwähnen würdest was für eine MQTT Client Komponente du verwendest. Wenn es wie von void vermutet der Paho Client ist würde ich mal auf Github ein Issue aufmachen. Laut: https://github.com/eclipse/paho.mqtt.m2mqtt/issues/66 war da bei der benutzer basierten Anmeldung was im argen. Vielleicht hat das auch was mit deinem Problem zu tun.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.