Ich verwende emqttd ( emqtt.io ). Ich möchte Clients überwachen, die eine Verbindung zu einem separaten Prozess herstellen und trennen, der ein Systemthema abonniert, in dem Geburts- und Willensnachrichten veröffentlicht werden. Was ist der richtige Weg, um das zu tun?
11
Antworten:
Das Benutzerhandbuch von emqtt zeigt ein Systemthema, das einige Broker-Statistiken enthält, dh
$SYS/brokers/${node}/stats/clients/count
die Anzahl der aktuell verbundenen Clients. Beachten Sie, dass hier keine Details zu den verbundenen Clients aufgeführt werden. Ich gehe davon aus, dass dies hier nicht erforderlich ist.Last Will-Nachrichten (LWT, Last Will und Testament) sind kein Systemthema, sondern ein reguläres Thema, das vom Client während der Verbindung eingerichtet wurde. Wenn Sie dieses Thema überwachen möchten, abonnieren Sie es einfach. Beachten Sie jedoch, dass LWT-Nachrichten verworfen werden, wenn ein Client die Verbindung ordnungsgemäß durch Senden einer DISCONNECT-Nachricht trennt (siehe hiveMQ-Blog , übrigens großartig gelesen).
Das Benutzerhandbuch von emqtt bietet eine bessere Möglichkeit, das Verbinden und Trennen von Clients zu überwachen:
Ich denke, dass die Überwachung
clients list
- alle MQTT-Clients auflisten - undclients show <ClientId>
- einen MQTT-Client anzeigen - hier am hilfreichsten ist. Der geplante separate Prozess zur Überwachung von Kunden muss daher nicht beim Broker abonniert werden, sondern wird einfach verwendet./bin/emqttd_ctl
.quelle
Nun, nicht sicher über die Geburtsnachricht und LWT (Last Will and Testament) ist optional gemäß der Spezifikation. Sie würden also nicht unbedingt Nachrichten erhalten, wenn Sie Ihren Broker nicht an diese Anforderungen angepasst hätten.
quelle