MQTT doğum ve irade konularına abone misiniz? (Emqttd)


11

Emqttd ( emqtt.io ) çalıştırıyorum . Doğum ve irade mesajlarının gönderildiği bir sistem konusuna abone olacak ayrı bir sürece bağlanan ve bağlantıyı kesen istemcileri izlemek istiyorum. Bunu yapmanın doğru yolu nedir?


3
IoT SE'ye hoş geldiniz. Kurulumda biraz daha ayrıntı verebilir misiniz? Ne tür bir makinede emqttd çalıştırıyorsunuz ve hangi sürümde?
Helmar

Yanıtlar:


5

Doğum ve irade mesajlarının gönderildiği bir sistem konusuna abone olacak ayrı bir sürece bağlanan ve bağlantıyı kesen istemcileri izlemek istiyorum.

emqtt Kullanıcı Kılavuzu , bazı Aracı İstatistikleri sunan, yani $SYS/brokers/${node}/stats/clients/countmevcut bağlı istemcilerin sayısını sağlayan bir sistem konusunu gösterir . Bu, bağlı istemcilerle ilgili herhangi bir ayrıntıyı listelemeyeceğini unutmayın - bu yüzden burada gerekli olan şey değildir.

Son irade (LWT, Son İrade ve Ahit) mesajları bir sistem konusu değil, bağlantı sırasında istemci tarafından ayarlanan normal bir konudur. Bu konuyu izlemek istiyorsanız konuya abone olmanız yeterlidir. Ancak, bir istemci DISCONNECT mesajı göndererek bağlantının kesilmesi durumunda LWT mesajlarının atıldığını unutmayın (bkz. HiveMQ blogu , harika okuma btw).

emqtt Kullanıcı Kılavuzu , istemcilere bağlanma ve bağlantıyı kesmenin izlenmesi için daha iyi bir yol sunar:

./bin/emqttd_ctlKomut satırı sorgu ve Yönetmek EMQ komisyoncu (Windows üzerinde çalışmıyor) için kullanılabilir.

İzlemenin clients list- tüm MQTT istemcilerini listele ve clients show <ClientId>bir MQTT İstemcisi göster - burada en yararlı olduğunu düşünüyorum. Bu nedenle, istemcileri izlemek için planlanan ayrı işlemin aracıya abone olması gerekmez, ./bin/emqttd_ctlbunun yerine basitçe kullanılması gerekir .

    $ ./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)

Çok kullanışlı. Zaman ayırdığınız için teşekkürler. emqttd_ctl kısmi bir çözüm sağlayabilir, ancak elimizde bir pubsub olması durumunda, bu mekanizmayı uyarılar oluşturmak için kullanabileceğinizi umuyordum. Sanırım, müşterilerin doğum ve irade mesajları yayınlamalarını zorunlu kılarak uygulayabileceğim bir şey.
Fabien Papleux

1

Doğum mesajından ve LWT'den (Son İrade ve Ahit) emin değilim. Bu nedenle, acentanızı bu tür gereksinimlere göre özelleştirmediyseniz, ileti almanız gerekmez.


LWT bağlantısı kesilen istemci adına hareket eden aracıdır. Aracı için isteğe bağlı olmayan uygulama. İstemcinin bir son istek konusu ayarlaması yalnızca isteğe bağlıdır.
Ghanima

Demek istediğim buydu. İstemci, bağlantı paketinin bir parçası olarak gönderemeyebilir.
cogitoergosum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.