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