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.
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:
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!"
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.
Hi, ok Danke. Also muss ich eine andere ClientID benutzen.
Was meinst du mit MQTTnet Interceptor/Handler?
Woher weiß ich welche clientId bereits vergeben wurde?
@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.
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?
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 - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code