2016-04-29 3 views
0

Ich untersuche die Leistung des MQTT-Protokolls. Ich verwende Raspberry Pi als MQTT-Broker und einen PC als Client, die beide im selben LAN verbunden sind. Der PC sendet eine Nachricht an den Broker, und wenn der Broker sie erhält, gibt er eine publish.single zurück. Wenn ich versuche, 10000 sende Nachricht mit qos pro Minute veröffentlichen = 2, erhalte ich die folgende Fehlermeldung auf der Client-Seite nach ~ 8163 Nachrichten:Fehler: [Errno 10048]: Beim Senden von 10.000 Nachrichten vom Client zum Broker (Python, MQTT, Raspberry Pi)

error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted 

habe ich versucht, das gleiche für qos = 0 und qos = 1, Es funktionierte, ohne den gleichen Fehler zu bekommen. Was ist das Problem?

Antwort

2

Dies ist wahrscheinlich, weil Sie die Anzahl der verfügbaren lokalen Ports auf dem Client-Rechner erschöpft haben, weil Sie so viele Nachrichten haben.

QOS 2 Nachrichten haben viel mehr Overhead (sie erfordern Bestätigung in beiden Richtungen).

Es wird möglicherweise verschlimmert, indem Sie die publish.single-Methode verwenden, da dies eine vollständige Verbindung zum Broker für jede Nachricht erstellt und abbaut, wenn Sie eine persistente Verbindung erstellen und sie wiederverwenden, werden die Dinge wahrscheinlich besser fließen.

Verwandte Themen