Ich benutze mosquitto 1.4.10.Mosquitto tötet manchmal Client-Verbindungen
Ich habe einen Client, der mehrere Nachrichten zum selben Thema in Batches veröffentlicht (z. B. 50 Nachrichten pro Batch). Der Client sendet jede Charge alle paar Sekunden (z. B. alle 5 Sekunden). Nachdem 1 oder ein paar Chargen gesendet wurden, wird mosquitto bei der nächsten Charge plötzlich die Verbindung zum Client beenden.
Ich habe provided a packet capture von der Maschine, auf der der Broker läuft, zeigt das Verhalten, das ich unten beschreiben werde.
Kunde: 172.16.0.114 mosquitto Broker: 10.16.208.139 (port 8883)
Die Zahlen unten sind die Paketnummern in der Erfassungsdatei.
1: Client
17 ?: Client Broker verbindet starten ersten Charge von Nachrichten veröffentlichen
386: Erste Stapel von Nachrichten komplett
387: startet Kunde zweiten Charge von Nachrichten veröffentlichen
388: Fehlendes Paket?
389: mosquitto ACKs Paket 387
390: mosquitto beginnt Spamming TCP DUP ACK-Pakete für 387
549: mosquitto stoppt Spam-TCP DUP ACK-Pakete für 387
550-578: Lots Neuübertragungen
784: Zweiter Stapel von Nachrichten komplett
785: Dritte Stapel von Nachrichten beginnen
788: mosquitto sendet FIN ACK, die Verbindung geschlossen
790-880 (WARUM?): Mosquitto reagiert auf weitere Nachrichten mit RST
Die wichtigste Frage, warum plötzlich die Verbindung schließen würde mosquitto wird nach dem Empfang des 3. Stapels von Nachrichten. Die Protokolle in mosquitto an dieser Stelle, wo die dritte Partie beginnt, ist hier:
18:52:24
1491418344: OpenSSL Error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
18:52:24
1491418344: Socket error on client admin, disconnecting.
Scheint viel viel wahrscheinlicher, dass dies ein Client-seitiges oder Netzwerk-Problem als ein Mosquitto-Problem ist. Oder ein Problem mit dem Hosting von Mosquitto. Haben Sie versucht, den lokalen Client für Mosquitto auszuführen, sehen Sie, ob das anders funktioniert. – barny