gewusst wie: löschen Sie ALLE erhalten mqtt-Nachrichten von mosquitto
Ich habe gesehen, das mosquitto_pub -h [server] -r -n -t [XYZ] syntax für die Entrümpelung eines off-Meldungen. Mein problem ist die Vorrichtung, die die Entwickler veröffentlicht haben und eine Menge Müll-Nachrichten. Ich habe ein java/paho code-Basis, das möchte ich ändern, um dies automatisch tun als nötig, aber ich kann nicht scheinen, um veröffentlichen eine null-byte-Nachricht. Ich habe versucht,
client.publish(topic,null);
aber das schien nicht zu arbeiten.
Irgendwelche Vorschläge auf, wie man alles löschen, en Masse.
InformationsquelleAutor JohnL | 2016-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es 2 Optionen für die Verwendung der paho-client-code je nachdem, welche der 2
publish
Methoden, die Sie verwenden.oder
Die andere option wäre halt mosquitto und löschen der Persistenz-Datei und starten Sie
code Hinzugefügt, um festzulegen beibehalten
Das löschen der Persistenz-Datei stellte sich heraus, dass die option, die ich wirklich brauchte.
Dies ist, wie ich gelöscht, die Persistenz-Datei in Ubuntu 16.04:
sudo service mosquitto stop
sudo rm /var/lib/mosquitto/mosquitto.db
sudo service mosquitto start
können Sie in Ihre mosquitto.conf wo persistence_file befindet.Es ist wichtig zu verstehen, dass das löschen der Persistenz-Datei auch löscht alle Nachrichten in der Warteschlange und jedes permanente Abonnements. Es ist besser, zu löschen einzelner Themen, die mit der Veröffentlichung einer null-Nachricht, die in einer Produktionsumgebung
InformationsquelleAutor hardillb
Hier ist, wie man es richtig machen mit einem shell-Skript.
Einfach in eine Datei namens so etwas wie
Führen
Müssen Sie Strg+c, nach einer Weile, wenn Sie es erhalten hat, alle Nachrichten. Diese Lösung ist ziemlich grob. Sie kann nicht angeben, was zu löschen oder so.
Sicher, fügen Sie -u Benutzername -P Passwort in der Zeile sowohl die mosquitto_sub und mosquitto_pub
Wenn Ihr Thema enthält Leerzeichen, Sie können ändern Sie den Befehl zu:
mosquitto_sub -h $1 -t "#" -v | while read line; do mosquitto_pub -h $1 -t "${line% *}" -r -n; done
Die änderung ist das entfernen der_
nachread line
und ändern$line
zu${line% *}
Cool Robert, wechselte ich auf Ihren Vorschlag
InformationsquelleAutor Gussoh
Sollte dies funktionieren:
Auch, die Sie interessieren können, der in dieses Skript von Eclipse Paho Python, klar, für ein Thema eine Hierarchie. Können Sie umsetzen wollen, ein ähnliches Verhalten wie in Java, aber es sieht aus wie Sie suchen können, für eine one-off-Lösung, vielleicht verwenden Sie einfach das Python-Skript 🙂
"das Skript" - link ist nun 404
InformationsquelleAutor kartben