คำถามติดแท็ก mqtt

สำหรับคำถามเกี่ยวกับโปรโตคอลการส่งข้อความ MQTT ระบบที่ใช้ TCP / IP แบบ Lightweight สำหรับการสื่อสารระหว่างเครื่องกับเครื่องจักร

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

4
เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะเก็บใบรับรองไว้ในหน่วยความจำภายนอก
เรากำลังทำงานกับ AWS-IoT โดยใช้ไมโครคอนโทรลเลอร์ STM32 จนถึงวันนี้เรากำลังเขียนใบรับรองไปยังแฟลชและล็อคแฟลชจากการอ่านจากภายนอก เมื่อรหัสแอปพลิเคชันเพิ่มขึ้นเราจะมีพื้นที่ว่างน้อยลงบนแฟลชดังนั้นเราจึงวางแผนที่จะย้ายใบรับรองจากภายนอกบนการ์ด SD / EEPROM และอ่านเมื่อใดก็ตามที่จำเป็นก่อนเชื่อมต่อกับ AWS-IoT หมายเหตุ: นโยบายที่เขียนขึ้นสำหรับสิ่งนี้จะอนุญาตให้อุปกรณ์ที่มีชื่อเฉพาะเชื่อมต่อกับใบรับรองนั้นเท่านั้น สิ่งที่ได้รับอนุญาตให้เผยแพร่ไปยัง 2 ช่องทางเท่านั้น (ชื่อและช่องฟีดข้อมูล) ซึ่งเชื่อมต่อกับตัวประมวลผลข้อมูลซึ่งจะไม่สนใจแพ็กเก็ตอันธพาลใด ๆ ที่เข้ามา หากสิ่งที่เผยแพร่ / สมัครสมาชิกในหัวข้ออื่น AWS จะยกเลิกการเชื่อมต่อทันที หากฉันตรวจพบว่าอุปกรณ์ถูกขโมย / โกงเราจะปิดการใช้งานคีย์จากเซิร์ฟเวอร์ ผู้เอาเปรียบสามารถทำอะไรกับใบรับรอง (RootCA, คีย์เซิร์ฟเวอร์, รหัสลูกค้า) เป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะเก็บใบรับรองสำหรับ usecase ดังกล่าวไว้ในที่จัดเก็บข้อมูลภายนอก
11 security  mqtt  aws-iot 

1
mosquitto_sub“ การเชื่อมต่อถูกปฏิเสธ” บน Arch Linux
ดังนั้นผมจึงติดตั้งmosquittoและmosquitto-clientในราสเบอร์รี่ Pi ทำงาน Raspbian Jessie ผ่านapt-getเช่นเดียวกับในพี่อีกคนหนึ่งวิ่งผ่านmosquitto Arch ลินุกซ์ pacmanบน Arch ไคลเอ็นต์ utils ไม่จำเป็นต้องติดตั้งแยกกัน การทดสอบการสมัครสมาชิก / การเผยแพร่อย่างง่ายบน Raspbian ไม่ได้ผล mosquitto_sub –d –t blub mosquitto_pub –d –t blub –m “test” การเผยแพร่จากกล่อง Arch ทำงานได้ดี: mosquitto_pub -h <IP-Raspbian> -t blub -m "test" สมัครสมาชิกหัวข้อในระบบ Arch แต่ทำให้ฉันเพิ่ง: mosquitto_sub –d –t blub Error: Connection refused ตอนนี้เป็นเรื่องธรรมดา เกิดอะไรขึ้นที่นี่?

3
ฉันควรใช้ซ็อกเก็ตเว็บของ Mosquitto หรือเชื่อมต่อลูกค้าโดยตรงหรือไม่
ตามบล็อกนี้ Mosquitto (โบรกเกอร์ MQTT) ในขณะนี้รองรับการเชื่อมต่อกับลูกค้าผ่านเว็บเบราเซอร์ บทความในบล็อกดูเหมือนจะบอกใบ้ว่าเว็บซ็อกเก็ตมีประโยชน์มากกว่าสำหรับแอปพลิเคชั่นเบราว์เซอร์เนื่องจากเว็บเบราว์เซอร์ไม่รองรับซ็อกเก็ต TCP ที่เหมาะสม (ถึง) แม้ว่าเว็บเบราว์เซอร์โปรโตคอลจะรองรับเบราว์เซอร์สมัยใหม่ หากฉันมีลูกค้าหลายรายในเครือข่าย (เช่นเซ็นเซอร์และแอคทูเอเตอร์ที่ใช้ไมโครคอนโทรลเลอร์เช่น Raspberry Pis) จะมีประโยชน์อย่างไรหากใช้ซ็อกเก็ตเว็บผ่านการเชื่อมต่อ TCP โดยตรง? ค่าใช้จ่ายของโปรโตคอลเว็บซ็อกเก็ตนั้นคุ้มค่าเมื่อคุณสื่อสารกับเบราว์เซอร์หรือไม่?

2
กำลังตรวจจับอุปกรณ์ IoT ในเว็บเบราว์เซอร์?
เมื่อเร็ว ๆ นี้ฉันซื้อรีเลย์ wifi สองตัวจาก Xiaomi แม้ว่าพวกเขาจะแข็งแกร่งมาจนถึงตอนนี้ฉันไม่ชอบแอปของ Xiaomi จริงๆ แต่ฉันชอบความคิดที่ว่ามันใช้งานได้จริงทั้งใน LAN และผ่านอินเทอร์เน็ต เมื่ออยู่ใน LAN พวกเขาจะเปิดและปิดได้อย่างรวดเร็วโดยพิจารณาจากเซิร์ฟเวอร์ของ Xiaomi ที่อยู่ในประเทศจีน ดังนั้นฉันต้องการม้วนรีเลย์ตาม ESP8266 ของฉันเอง (ฉันรู้ว่าฉันสามารถทำให้ฮาร์ดแวร์พร้อมแล้วนั่นคือโบนัส) ปัญหาของฉันคือฉันจะตรวจสอบรีเลย์ในเครือข่ายของฉันโดยอัตโนมัติจากหน้าเว็บได้อย่างไร จาก "แอพ" ฉันสามารถใช้ SSDP, mDNS-SD หรือ UPNP เพื่อตรวจจับสิ่งต่าง ๆ แต่ฉันไม่พบข้อมูลเกี่ยวกับเรื่องนี้เป็นไปได้จากเว็บเบราว์เซอร์ (โดยทั่วไป Chrome บน Android) เนื่องจากฉันเปลี่ยนเว็บเพจสถานีอากาศของฉันเป็น Progressive Web App ฉันจึงติดใจ ฉันชอบความคิดของสิ่งต่าง ๆ เพียงแค่เป็นเว็บเพจไม่ใช่แอปที่คุณต้องติดตั้ง และ PWAs เติมช่องว่างด้วยโหมดออฟไลน์ด้วย มันแปลกที่ส่วน "ยาก" (การเปิดและปิดรีเลย์จากนอก …

1
MQTT เชื่อมต่ออยู่เสมอและโหลดข้อมูล 4G
ฉันกำลังทำงานในโครงการ IoT ที่เกี่ยวข้องกับลูกค้า MQTT หลายพันรายที่เชื่อมต่อกับนายหน้า (mosquitto) ผ่านเราเตอร์ / โมเด็ม 4G / WiFi ลูกค้าน้อยกว่า 10 คนเชื่อมต่อกับเราเตอร์เดียวกันและเราเตอร์มาจากสถานที่ต่างกัน (เมืองต่าง ๆ ) ตอนนี้เรามีลูกค้าน้อยมากและพวกเขาเชื่อมต่อกับนายหน้าอยู่เสมอ ฉันรู้จากการสนทนานี้ว่าจะไม่มีปัญหาแม้ว่าพวกเขาจะเติบโตถึง 1,000+ หน่วย คำถามของฉันเกี่ยวกับปริมาณการรับส่งข้อมูลในการเชื่อมต่อ 4G ผู้ใช้ปลายทางกลัวการบริโภคข้อมูลโดยที่ "ช่อง" เหล่านั้นเปิดขึ้นและไม่ได้ใช้งาน เท่าที่ฉันเข้าใจเมื่อไม่มีกิจกรรมเท่านั้นที่ส่งแพ็กเก็ตแบบ keep-aliveแต่ฉันไม่สามารถหาข้อมูลนี้ได้อย่างแน่นอนในเอกสาร MQTT ฉันสามารถสันนิษฐานได้ว่าทราฟฟิกเมื่อไม่มีแพ็กเก็ตที่ถูกเผยแพร่มีความสำคัญน้อย?
10 mqtt 

2
MQTT สามารถปรับขนาดได้กับลูกค้ามากกว่า 1,000 รายหรือไม่
อุปกรณ์สถานการณ์ IoT (อุปกรณ์ IPv4 ในปัจจุบัน) ที่ส่งผ่านทางซ็อกเก็ต TCP จะบรรจุข้อมูลลงในเซิร์ฟเวอร์หนึ่งครั้งต่อวัน เซิร์ฟเวอร์มีที่อยู่ IP สาธารณะอุปกรณ์อยู่หลังเราเตอร์ / NAT ฉันจะใช้โมดูลตาม ESP8266 (เช่น Olimex หนึ่ง) เป้าหมายเซิร์ฟเวอร์ควรจะสามารถส่งข้อมูลไปยังลูกค้าใด ๆ เมื่อใดก็ตามที่จะต้องมีการ ฉันไม่สนใจในการสื่อสารโดยตรงระหว่างไคลเอ็นต์กับลูกค้า (เช่นเชื่อมต่อกับอุปกรณ์จากสมาร์ทโฟนของฉัน) เหมือนกับการเจาะรูที่ควรทำ ข้อกำหนดอื่น ๆ อุปกรณ์ IoT อาจโตได้หลายพันเครื่อง การเชื่อมต่ออินเทอร์เน็ตของพวกเขานั้นมีให้โดยเราเตอร์ / โมเด็มที่รองรับ 4G หลายตัว แต่ละคนจะจัดการกับลูกค้า 10-20 โซลูชันที่เสนอ เท่าที่ฉันเข้าใจโซลูชันทั่วไปคือ MQTT ลูกค้าส่งข้อมูลไปยังนายหน้า (เช่น Mosquitto ที่ทำงานบนเซิร์ฟเวอร์โฮสติ้ง) เป็นระยะซึ่งในทางกลับกันจะอัปเดตแอปพลิเคชันเว็บหลักที่ทำงานบนเซิร์ฟเวอร์เดียวกัน คำถาม วิธีการ MQTT เหมาะสำหรับอุปกรณ์ "ขนาดใหญ่" (1,000+) …
10 mqtt  wifi  routers 

1
โปรโตคอลการสื่อสารของอุปกรณ์ที่ไม่ใช่ IP
ฉันมีคำถามเกี่ยวกับการสื่อสารอุปกรณ์ที่ไม่ใช่ IP จากการวิจัยของฉันฉันเรียนรู้ว่า CoAP และ DDS สามารถใช้สำหรับการสื่อสารแบบอุปกรณ์ต่ออุปกรณ์ MQTT มีประโยชน์สำหรับ Device-to-Gateway หรือ Device-to-Service หรือ Cloud คำถามของฉันคืออุปกรณ์ที่ไม่ใช่ IP (การสื่อสารผ่าน RF หรือบลูทู ธ ธรรมดา ฯลฯ ที่ไม่มี IP) สามารถใช้โปรโตคอลเหล่านี้ได้อย่างไร MQTT ใช้ TCP / IP COAP, DDS, MQTT-SN ใช้ UDP / IP นั่นหมายความว่าพวกเขาใช้ IP เป็นไปได้อย่างไร? มีโปรโตคอลอื่น ๆ ที่ไม่ได้ใช้ TCP หรือ UDP สำหรับ D2D และ Device-to-Gateway …

3
มีกลไก RPC ที่เป็นมาตรฐานสำหรับ MQTT หรือไม่
Over on Stack Overflow มีคำถามเกี่ยวกับการนำการโต้ตอบ / การตอบกลับไปใช้กับ MQTT ในฐานะที่เป็นหนึ่งคำตอบบันทึกย่อคุณสามารถทำได้โดยการเผยแพร่คำขอในหนึ่งหัวข้อและฟังการตอบสนองในโทเค็นอื่นที่รวมอยู่ในคำขอ มันค่อนข้างอึดอัด แต่ก็ใช้งานได้ เนื่องจาก MQTT มีการใช้อย่างกว้างขวางตลอด IoT ฉันสงสัยว่ามีความพยายามใด ๆ ที่จะสร้างมาตรฐานการโต้ตอบประเภท RPC นี้เพื่อการทำงานร่วมกันหรือไม่?
10 mqtt  standards 

1
RPI 3 จะทำหน้าที่เป็นเซิร์ฟเวอร์ IoT ด้วย MQTT หรือไม่
ฉันตอบคำถามที่เชื่อมโยงด้านล่างและเริ่มคิดว่ารายละเอียดของฮาร์ดแวร์สำหรับใช้งาน IoT stack เช่น MQTT บน LoraWan คืออะไร Raspberry PI 3 จะอยู่รอดได้หรือไม่? ฉันไม่สนใจว่า RPI เชื่อมต่อ LoraWan อย่างไรส่วนใหญ่เกี่ยวกับ RAM และการใช้ที่เก็บข้อมูล วิธีการเลือกเซิร์ฟเวอร์ IoT น้ำหนักเบาแบบง่ายสำหรับการพัฒนา

1
ฉันสามารถเผยแพร่ MQTT หลายหัวข้อในคำขอเดียวได้หรือไม่
ฉันมีอุปกรณ์ที่มีเซ็นเซอร์หลายตัวที่เผยแพร่เซ็นเซอร์แต่ละตัวแยกกันอ่านตามหัวข้อเช่น device1-id/sensor1-id = 10.2 device1-id/sensor2-id = 15.5 [...] เราป้อนให้ AWS IoT โดยใช้ Amazon AWS IoT SDK เช่น mqtt_params.qos = QOS1; mqtt_params.payload = payload; mqtt_params.payloadLen = payload_len; rc = aws_iot_mqtt_publish(&client, topic, topic_len, &mqtt_params); การเรียกแต่ละครั้งสร้างแพคเก็ต TCP แยกต่างหากและการตอบสนองแยกต่างหากจากนายหน้า AWS MQTT ปัญหาคือว่าบางโหนดของเราอยู่ในเครือข่ายช้ามากและรอ ACK หลังจากทุกแพ็กเก็ตล่าช้าเผยแพร่ มีวิธีใดบ้างที่จะรวมการอ่านเซ็นเซอร์ทั้งหมดเข้าด้วยกันในแพ็คเก็ต TCP เดียวในขณะที่เผยแพร่พวกเขาในหัวข้อที่แยกต่างหากและรักษา QOS = 1
10 mqtt  aws-iot 

3
ประสิทธิภาพของ MQTT ผ่าน TLS เทียบกับ MQTT
ในขณะที่ MQTT นั้นค่อนข้างหลากหลาย แต่ก็ไม่ปลอดภัย นี่คือโดยการออกแบบ สแตนฟอร์ด - คลาร์กกล่าวว่าการรักษาความปลอดภัยได้ถูกละทิ้งโปรโตคอลไว้ตั้งแต่แรกเพราะเขาและก้ามรู้ว่ากลไกความปลอดภัยนั้นถูกห่อหุ้มรอบ MQTT เพื่อเพิ่มความปลอดภัย นอกจากนี้ในเวลานั้น Stanford-Clark กล่าวว่าข้อมูลที่ส่งผ่าน MQTT เช่นข้อมูลความเร็วลมจากสถานีตรวจอากาศไม่ได้ต้องการความปลอดภัยเป็นพิเศษ - ที่มา หนึ่งในกลไกความปลอดภัยที่สามารถล้อมรอบ MQTT คือ TLS โบรกเกอร์ส่วนใหญ่สนับสนุนในปัจจุบันนี้ แน่นอนว่ามาตรการห่อหุ้มจะทำให้เกิดค่าใช้จ่าย ค่าใช้จ่ายนี้อาจจะเล็กน้อย (cf. HiveMQ blog ) ขณะนี้ฉันกำลังมองหาข้อมูล (หวังว่าจะเป็นแหล่งข้อมูลที่เชื่อถือได้) เกี่ยวกับการสูญเสียประสิทธิภาพของ MQTT ผ่าน TLS และ MQTT ธรรมดาเพื่อประเมินความมีชีวิตของ MQTT สำหรับโครงการของฉัน โดยเฉพาะอย่างยิ่งเมื่อเทคโนโลยีปรับขนาดเป็นสมาชิกจำนวนมาก มีวิธีอื่นนอกเหนือจากการสร้างต้นแบบเพื่อรับข้อมูลที่ถูกต้องเกี่ยวกับประสิทธิภาพของ MQTT ผ่าน TLS หรือไม่
10 security  mqtt  tls 

1
วิธีการใช้ MQTT บน Arduino ซึ่งใช้ serial com เพื่อส่งคำสั่ง AT ไปยัง ESP8266
ฉันเพิ่งเริ่มมองหาโปรโตคอล MQTT สถานการณ์ ในโครงการวิทยาลัยของฉันในปัจจุบันฉันใช้ Arduino เป็น MCU หลักและทำงานทุกอย่างในนั้นและใช้ Serial Comm เพื่อส่งคำสั่ง AT ไปยัง esp8266 (สำหรับการร้องขอ HTTP เพื่อเรียกใช้สคริปต์บนเซิร์ฟเวอร์ ฯลฯ ) โดยทั่วไปฉันต้องการผลักดันข้อมูลบางอย่าง (จาก Arduino) บนหน้าเว็บ (โฮสต์โดยเซิร์ฟเวอร์ท้องถิ่น) ฉันค้นหาและพบเกี่ยวกับโปรโตคอลMQTTที่ช่วยให้สามารถเผยแพร่และสมัครสมาชิกข้อมูลกับลูกค้า (สิ่งที่ฉันต้องการ) แต่บทเรียนส่วนใหญ่ที่ฉันพบมีทั้งใน Arduino (พร้อม wifi shield) หรือทั้งหมดใน esp8266 สิ่งที่ฉันต้องการทราบคือมีวิธีที่เป็นไปได้ที่จะใช้ MQTT เช่นเดียวกับการกำหนดค่าปัจจุบันของฉัน นั่นคือการใช้ Arduino เพื่อทำงานทั้งหมดและโดยใช้การสื่อสารแบบอนุกรม การเผยแพร่ข้อมูลโดยคำสั่ง AT บน MQTT ข้อมูลเพิ่มเติมเกี่ยวกับโครงการของฉันถูกกล่าวถึงที่นี่: สับสนเกี่ยวกับเทคโนโลยีที่จะใช้ในระบบสมาร์ทโฮม
10 mqtt  esp8266 

1
ไคลเอ็นต์ Mosquitto MQTT สามารถยกเลิกการบังคับให้ยกเลิกการเชื่อมต่ออื่นได้หรือไม่
ฉันสงสัยว่าไคลเอนต์ MQTT สามารถสั่งให้นายหน้าถอนการเชื่อมต่อลูกค้าด้วยวิธีการบางอย่างได้อย่างไรในกรณีที่ฉันต้องบังคับให้ยกเลิกการเชื่อมต่อไคลเอ็นต์จากเซิร์ฟเวอร์ MQTT ของฉัน (ตัวอย่างเช่นถ้ามันทำงานผิดปกติและตอบสนองไม่ถูกต้อง) คำถามก่อนหน้านี้ไฮไลต์ความเป็นไปได้เพียงการเชื่อมต่อกับรหัสลูกค้าเช่นเดียวกับลูกค้าที่คุณต้องการที่จะฆ่า แต่ดูเหมือนว่าไม่น่าเชื่อถือที่ดีที่สุดและฉันสงสัยว่าถ้ามีตัวเลือกที่น่าเชื่อถือมากขึ้นที่จะตอบสนองความต้องการของฉัน: อนุญาตให้ไคลเอนต์ที่ได้รับอนุญาตยกเลิกการเชื่อมต่อไคลเอนต์อื่น ๆ จากเครือข่ายด้วยรหัสลูกค้า เป็นการดีเยี่ยมป้องกันไม่ให้ลูกค้าที่ไม่ได้รับอนุญาตปลดการเชื่อมต่อกับผู้อื่น (เพื่อให้เฉพาะลูกค้าที่ 'เชื่อถือ' เท่านั้นที่สามารถยกเลิกการเชื่อมต่อกับผู้อื่นได้) มีคุณสมบัติที่ตรงตามข้อกำหนดดังกล่าวหรือไม่?
10 mqtt  mosquitto 

1
EMQ ยังคงข้อความ QoS 1/2 อย่างไร
EMQ (Erlang MQTT เกอร์)คือ "การกระจายปรับขนาดขนาดใหญ่ขยายสูงโบรกเกอร์ข้อความ MQTT" ที่มีรายงานว่า "1.3 ล้านเชื่อมต่อ MQTT พร้อมกัน" - ดังนั้นจึงอาจช่วยให้จำนวนมากของลูกค้าในการเผยแพร่และสมัครเป็นสมาชิกกับมัน ดูเหมือนว่าลูกค้าบางรายอาจถูกตัดการเชื่อมต่อในเวลาใดก็ตาม ตามคำถามนี้จะเกิดอะไรขึ้นถ้า Mosquitto มีหน่วยความจำไม่เพียงพอในการจัดเก็บข้อความ QoS 1/2 ถามเกี่ยวกับ Mosquitto: ใน MQTT ข้อความที่มี QoS 1 หรือ 2 จะต้องส่งมอบอย่างน้อยหนึ่งครั้ง (ข้อความ QoS 2 จะต้องถูกส่งครั้งเดียวอย่างแน่นอน ) หากลูกค้าไม่ได้เชื่อมต่อนายหน้าจะต้องเก็บข้อความไว้จนกว่าลูกค้าจะพร้อมรับ ดังนั้นEMQจะรักษาข้อความ QoS 1/2 ไว้ได้อย่างไรจนกระทั่งมีการส่งมอบนั่นคือการรีบูทของนายหน้าหรือเกี่ยวกับการ จำกัด หน่วยความจำ
10 mqtt  emq 

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