มีกลไก RPC ที่เป็นมาตรฐานสำหรับ MQTT หรือไม่


10

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

เนื่องจาก MQTT มีการใช้อย่างกว้างขวางตลอด IoT ฉันสงสัยว่ามีความพยายามใด ๆ ที่จะสร้างมาตรฐานการโต้ตอบประเภท RPC นี้เพื่อการทำงานร่วมกันหรือไม่?


พบเพียงแค่นี้ซึ่งอาจจะเป็นพื้นฐานสำหรับคำตอบนี้: esr.net/download/specification/ESR030-LWM2M-MQTT-1.0-A.pdf ไม่ยอมรับข้อกำหนดการตอบสนอง / คำขอทั่วไปที่เชื่อมโยงกับ LWM2M อย่างแน่นหนา
Chris Steinbach

คำตอบ:


9

ฉันไม่รู้จักมาตรฐานดังกล่าว

ดังที่ระบุไว้ในคำตอบของคำถามอื่น pub / sub ไม่ได้ให้ยืม RPC แต่สามารถงอให้พอดี

หนึ่งในจุดแข็งของ MQTT คือน้ำหนักบรรทุกสามารถเป็นได้ทุกอย่างช่วยให้นักพัฒนาสามารถสร้างทางเลือกที่ดีที่สุดสำหรับโครงการของพวกเขา


4

ฉันไม่แน่ใจว่าสิ่งที่คุณต้องการสำหรับวิธีการสื่อสาร RPC มาตรฐานผ่าน MQTT แต่ฉันยังคงทำการค้นหาเล็กน้อยและพบหลายจุดที่จะส่งมอบให้คุณ

ก่อนอื่นเกี่ยวกับวิธีมาตรฐาน ในหนึ่งโครงการGithub rpc คำอธิบายชนิดของเล็บมัน:

โมดูลนี้มีส่วนต่อประสาน rpc สำหรับการเชื่อมต่อ mqtt โดยสาระสำคัญนี่คือกลยุทธ์การร้องขอและการตอบสนองซึ่งใช้โครงสร้างหัวข้อ MQTT เป็นการขนส่ง

จุดคือการใช้สแต็คโมเดล (โมเดล OSI เป็นมาตรฐาน) และใช้ MQTT เป็นหนึ่งในเลเยอร์ของสแต็ก

โปรเจ็กต์นี้บน json-rpc บน mqttใช้โปรโตคอลมาตรฐานหรืออย่างน้อยที่รู้จักกันดีบน MQTT

เกี่ยวกับความเชื่องช้าคุณไม่จำเป็นต้องสร้าง MQTT และ RPC จากขั้นตอนแรก แต่ควรใช้หนึ่งในห้องสมุดที่เชื่อมโยงหรืออื่น ๆ ที่พบใน Github

ตกลงสำหรับทุกภาษาไม่มีพื้นฐานที่พร้อมสำหรับ Github แต่ในกรณีนั้นการปฏิบัติตามกลายเป็นเกณฑ์การวางแผนและอาจส่งผลกระทบต่อโครงการอื่นทั้งหมด


ฉันไม่มีความต้องการที่แท้จริง แรงผลักดันสำหรับคำถามคือการเปรียบเทียบ CoAP (ซึ่งมี RFC ที่กำหนดคำขอ / ตอบสนองและกลไก pub / sub) กับ MQTT ซึ่งฉันแน่ใจว่าตอนนี้มีเพียง pub / sub ที่ได้มาตรฐาน แน่นอนว่าการมีไลบรารีโอเพนซอร์สบางตัวสำหรับ RPC นั้นดีกว่าไม่มีอะไรเลย
Chris Steinbach

4

Azure IoT Hub มีแนวคิดของวิธีการโดยตรง:

IoT Hub ช่วยให้คุณสามารถเรียกใช้วิธีการโดยตรงบนอุปกรณ์จากคลาวด์

สิ่งนี้ถูกนำไปใช้ผ่าน MQTT (ไม่รองรับ AMQP) โดยที่

อุปกรณ์ได้รับการร้องขอวิธีการโดยตรงในหัวข้อ MQTT:

$iothub/methods/POST/{method name}/?$rid={request id}.

พวกเขาห่อสิ่งนี้ไว้ใน SDK ดังนั้นนักพัฒนาจึงไม่ต้องกังวลเกี่ยวกับการตรวจสอบหัวข้อโดยเฉพาะ คุณสามารถใช้วิธีการที่คล้ายกัน

ตามคำตอบอื่น ๆ pub-sub ไม่ได้ให้ยืม RPC และไม่มีมาตรฐานใด ๆ เท่าที่ฉันทราบ

เอกสารเพิ่มเติมได้ที่นี่

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