Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
MQTT Verbindungsprobleme
Raumsonde
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

MQTT Verbindungsprobleme

beantworten | zitieren | melden

Hallo,

ich benutzte für eine C# Anwendung das Dot Net Packet M2MqttDotnetCore (1.1.0).
Die Verbindung zum MQTT Server funktioniert sowie der Datenaustausch.
Allerdings wenn ich nun eine 2. C# Applikation starte wird die Verbindung zum MQTT Broker unterbrochen => not connected.

Eigentlich sollte doch mehrer Verbindungen zum MQTT Broker möglich sein.
private Nachricht | Beiträge des Benutzers
Papst
myCSharp.de - Experte



Dabei seit:
Beiträge: 393
Herkunft: Kassel

beantworten | zitieren | melden

Hi,

ich kenne die Lob nicht, habe selber mit MQTTNet gute Erfahrungen gemacht.
Ohne weitere Details können wir dir leider nicht helfen.

Du solltest dir anschauen, ob du die folgenden Fragen beantworten kannst:
  • Gibt es eine Exception?
  • funktioniert die zweite App ohne die erste?
  • verwendest du evtl. denselben lokalen Port?
  • funktioniert es an einem anderen pc?
  • unterbindet das ggf. Der Broker? (Credentials, IP?)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Papst am .
private Nachricht | Beiträge des Benutzers
gfoidl
myCSharp.de - Team

Avatar #avatar-2894.jpg


Dabei seit:
Beiträge: 7561
Herkunft: Waidring

beantworten | zitieren | melden

Hallo Raumsonde,

mit den gegebenen Infos ist es schwer bis unmöglich eine konkrete Hilfe zu bieten.
Aber https://www.nuget.org/packages/MQTTnet ist gängiger und damit gibt es i.d.R. keine Probleme. Versuch diese Paket einmal.

mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1898
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Klingt nach doppelter ClientId bei beiden Anwendungen.
Die ClientId muss bei MQTT für jede Verbindung eindeutig sein.
Wenn zwei Anwendungen/Clients sich mit der gleichen ID anmelden, wird der erste getrennt und die Verbindung des zweiten Übernimmt desen Platz.
Ansonsten bekommt man i.d.R. bei MQTTnet über entsprechende Interceptor/Handler die Möglichkeit solche Probleme zu finden.

T-Virus
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
Raumsonde
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Hi, ok Danke. Also muss ich eine andere ClientID benutzen.

Was meinst du mit MQTTnet Interceptor/Handler?
private Nachricht | Beiträge des Benutzers
Raumsonde
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Woher weiß ich welche clientId bereits vergeben wurde?
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1898
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

@Raumsonde
Wenn die C# Programme von dir sind, dann solltest du das doch im Code sehen können und sogar wissen.
Ansonsten sollte der MQTT Server auch melden können, wer sich mit welcher ClientId udn Zugangsdaten verbunden hat.

Bei MQTTnet kann man sich mit einem Interceptor (Muster/Pattern) in bestimmte Prozesse einklinken.
Z.b. um die Anmeldung von Clients zu prüfen und ggf. auch Anmeldungen wegen ungültigen Zugangsdaten abzulehnen.

Ein Handler ist dann ein Event Handler, der für bestimmte Aktionen aufgerufen wird.
Z.b. wenn eine Nachricht empfangen wurde o.ä.

T-Virus
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
Raumsonde
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

beantworten | zitieren | melden

Danke dir für dein Feeback.

Es geht darum, dass jemand anderes die Anwendung öffnet. Da kann ich ja nicht wissen welche ClientId diese Person benutzt.
Gibt es da keine Check Funktion, wo man prüfen kann welche ClientId bereits benutzt wird?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16145

beantworten | zitieren | melden

Dann musst Du die Id dynamisch generieren, zB mit Rechnername + Guid, Benutzername + Timestamp etc etc.. Dir wird da schon was passendes einfallen.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers