Laden...

MQTT Verbindungsprobleme

Erstellt von Raumsonde vor 2 Jahren Letzter Beitrag vor 2 Jahren 1.230 Views
R
Raumsonde Themenstarter:in
7 Beiträge seit 2021
vor 2 Jahren
MQTT Verbindungsprobleme

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.

P
441 Beiträge seit 2014
vor 2 Jahren

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?)
6.911 Beiträge seit 2009
vor 2 Jahren

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!"

T
2.219 Beiträge seit 2008
vor 2 Jahren

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.

R
Raumsonde Themenstarter:in
7 Beiträge seit 2021
vor 2 Jahren

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

Was meinst du mit MQTTnet Interceptor/Handler?

R
Raumsonde Themenstarter:in
7 Beiträge seit 2021
vor 2 Jahren

Woher weiß ich welche clientId bereits vergeben wurde?

T
2.219 Beiträge seit 2008
vor 2 Jahren

@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.

R
Raumsonde Themenstarter:in
7 Beiträge seit 2021
vor 2 Jahren

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?

16.806 Beiträge seit 2008
vor 2 Jahren

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