답변:
출생 및 유언장 메시지가 게시되는 시스템 주제를 구독하는 별도의 프로세스에서 연결 및 연결 해제하는 클라이언트를 모니터링하고 싶습니다.
emqtt의 사용 설명서 는 일부 브로커 통계, 즉 $SYS/brokers/${node}/stats/clients/count
현재 연결된 클라이언트 수를 제공 하는 시스템 주제를 보여줍니다 . 여기에는 연결된 클라이언트에 대한 구체적인 내용이 표시되지 않으므로 여기서는 필요하지 않은 것으로 생각합니다.
Last will (LWT, Last Will and Testament) 메시지는 시스템 토픽이 아니라 연결 중에 클라이언트가 설정 한 일반 토픽입니다. 해당 주제를 모니터링하려면 해당 주제를 구독하십시오. 그러나 클라이언트가 DISCONNECT 메시지를 보내어 정상적으로 연결을 끊으면 LWT 메시지가 삭제됩니다 ( hiveMQ 블로그 , btw 참조).
emqtt의 사용 설명서 는 클라이언트 연결 및 연결 해제를 모니터링하는 더 좋은 방법을 제공합니다.
./bin/emqttd_ctl
명령 줄은 쿼리 및 [관리] EMQ 브로커 (Windows에서 작동하지 않습니다)에 사용될 수있다.
모니터링 clients list
-모든 MQTT 클라이언트 나열 및 clients show <ClientId>
MQTT 클라이언트 표시-가 여기에서 가장 도움이된다고 생각합니다. 따라서 클라이언트를 모니터링하기 위해 계획된 별도의 프로세스는 브로커를 구독 할 필요가없고 ./bin/emqttd_ctl
대신 활용하면 됩니다.
$ ./bin/emqttd_ctl clients list Client(mosqsub/43832-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64896, connected_at=1452929113) Client(mosqsub/44011-airlee.lo, clean_sess=true, username=test, peername=127.0.0.1:64961, connected_at=1452929275)
글쎄, 출생 메시지와 LWT (Last Will and Testament)는 사양에 따라 선택 사항입니다. 따라서 브로커가 이러한 요구 사항에 맞게 사용자 정의하지 않은 경우 반드시 메시지를받지 않아도됩니다.