สมัครรับข้อมูลการเกิด MQTT และหัวข้อจะ? (emqttd)


11

ฉันกำลังใช้งาน emqttd ( emqtt.io ) ฉันต้องการตรวจสอบลูกค้าที่เชื่อมต่อและยกเลิกการเชื่อมต่อจากกระบวนการแยกต่างหากที่จะสมัครเป็นสมาชิกหัวข้อระบบที่มีข้อความเกิดและโพสต์ วิธีที่ถูกต้องในการทำเช่นนั้นคืออะไร?


3
ยินดีต้อนรับสู่ IoT SE คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับการตั้งค่าได้ไหม? คุณใช้เครื่องจักรประเภทใดและรุ่นไหน?
Helmar

คำตอบ:


5

ฉันต้องการตรวจสอบลูกค้าที่เชื่อมต่อและยกเลิกการเชื่อมต่อจากกระบวนการแยกต่างหากที่จะสมัครเป็นสมาชิกหัวข้อระบบที่มีข้อความเกิดและโพสต์

คู่มือผู้ใช้ของ emqttแสดงหัวข้อระบบที่นำเสนอสถิตินายหน้าบางส่วนเช่น$SYS/brokers/${node}/stats/clients/countแสดงจำนวนลูกค้าที่เชื่อมต่อในปัจจุบัน โปรดทราบว่านี่จะไม่แสดงรายการที่เฉพาะเจาะจงเกี่ยวกับไคลเอนต์ที่เชื่อมต่อ - ดังนั้นฉันจะเอามันไม่ใช่สิ่งที่จำเป็นที่นี่

ข้อความสุดท้าย (LWT, ความประสงค์สุดท้ายและพันธสัญญา) ไม่ใช่หัวข้อของระบบ แต่เป็นหัวข้อปกติที่ลูกค้าตั้งค่าในระหว่างการเชื่อมต่อ หากคุณต้องการตรวจสอบหัวข้อนั้นเพียงสมัครเป็นสมาชิก โปรดทราบว่าข้อความ LWT จะถูกยกเลิกหากลูกค้ายกเลิกการเชื่อมต่ออย่างสง่างามโดยการส่งข้อความ DISCONNECT (ดูบล็อก 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)

มีประโยชน์มาก. ขอบคุณที่สละเวลา emqttd_ctl อาจมีวิธีแก้ปัญหาบางส่วน แต่ด้วย pubsub ในการกำจัดของเราฉันหวังว่าคุณจะสามารถใช้กลไกนั้นในการสร้างการแจ้งเตือน ฉันคิดว่ามันเป็นสิ่งที่ฉันยังคงสามารถบังคับใช้โดยกำหนดให้ลูกค้าประกาศการเกิดและข้อความ
Fabien Papleux

1

ดีไม่แน่ใจเกี่ยวกับข้อความเกิดและ LWT (ความตั้งใจสุดท้ายและพันธสัญญา) เป็นตัวเลือกตามข้อมูลจำเพาะ ดังนั้นคุณจะไม่จำเป็นต้องได้รับข้อความใด ๆ เว้นแต่ว่าคุณได้กำหนดให้นายหน้าของคุณเป็นไปตามข้อกำหนดดังกล่าว


LWT เป็นโบรกเกอร์ที่ทำหน้าที่ในนามของลูกค้าที่ไม่ได้เชื่อมต่อ การนำไปใช้ที่ไม่จำเป็นสำหรับนายหน้า เป็นเพียงทางเลือกสำหรับลูกค้าที่จะตั้งค่าหัวข้อสุดท้าย
Ghanima

นั่นคือสิ่งที่ฉันหมายถึง ไคลเอ็นต์อาจไม่ส่งเป็นส่วนหนึ่งของการเชื่อมต่อแพ็คเก็ต
cogitoergosum
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.