Có một cơ chế RPC tiêu chuẩn cho MQTT?


10

Trên Stack Overflow có một câu hỏi về việc thực hiện tương tác yêu cầu / phản hồi qua MQTT. Như một câu trả lời lưu ý, bạn có thể thực hiện bằng cách xuất bản yêu cầu về một chủ đề và lắng nghe phản hồi trên một mã thông báo khác có trong yêu cầu. Nó hơi khó xử, nhưng nó hoạt động.

Vì MQTT được sử dụng rộng rãi trên toàn IoT, tôi tự hỏi, đã có bất kỳ nỗ lực nào để chuẩn hóa tương tác loại RPC này vì mục đích tương tác chưa?


Chỉ cần tìm thấy điều này có thể là cơ sở cho một câu trả lời: esr.net/doad/specification/ESR030-LWM2M-MQTT-1.0-A.pdf . Phải thừa nhận rằng không phải là một đặc tả yêu cầu / phản hồi chung chung được kết hợp chặt chẽ với LWM2M.
Chris Steinbach

Câu trả lời:


9

Tôi không biết về bất kỳ tiêu chuẩn như vậy.

Như đã chỉ ra trong các câu trả lời cho câu hỏi khác, pub / sub không cho vay RPC nhưng nó có thể được uốn cong để phù hợp.

Một trong những điểm mạnh của MQTT là tải trọng có thể là bất cứ thứ gì, cho phép nhà phát triển đưa ra lựa chọn tốt nhất cho dự án của họ.


4

Tôi không chắc yêu cầu của bạn đối với phương thức giao tiếp RPC được tiêu chuẩn hóa qua MQTT là gì nhưng tôi vẫn thực hiện một tìm kiếm nhỏ xung quanh và tìm thấy một số điểm để cung cấp cho bạn.

Trước hết, về phương pháp tiêu chuẩn. Trên một dự án Github rpc, loại mô tả của nó:

Mô-đun này cung cấp giao diện rpc cho kết nối mqtt, về bản chất đây là chiến lược yêu cầu và phản hồi sử dụng cấu trúc chủ đề MQTT làm phương tiện vận chuyển.

Vấn đề là sử dụng mô hình ngăn xếp (mô hình OSI là một tiêu chuẩn) và chỉ sử dụng MQTT làm một trong các lớp của ngăn xếp.

Dự án này trên json-rpc trên mqtt sử dụng giao thức được tiêu chuẩn hóa hoặc ít nhất là nổi tiếng qua MQTT.

Về sự vụng về, bạn không phải xây dựng MQTT và RPC từ đầu mà thay vào đó sử dụng một trong các thư viện được liên kết hoặc một số thư viện khác được tìm thấy trên Github.

OK, đối với mọi ngôn ngữ không có cơ sở sẵn sàng trên Github, nhưng trong trường hợp đó, việc tuân thủ trở thành một tiêu chí lập kế hoạch và có thể ảnh hưởng đến toàn bộ dự án khác, thật không may.


Tôi không có yêu cầu thực sự. Động lực cho câu hỏi là so sánh CoAP (có cơ chế yêu cầu / phản hồi được xác định bởi RFC cơ chế pub / sub) với MQTT mà tôi chắc chắn bây giờ chỉ có pub / sub được tiêu chuẩn hóa. Chắc chắn có một số thư viện mã nguồn mở cho RPC là tốt hơn không có gì.
Chris Steinbach

4

Azure IoT Hub có khái niệm về các phương thức trực tiếp:

IoT Hub cung cấp cho bạn khả năng gọi các phương thức trực tiếp trên các thiết bị từ đám mây.

Điều này được triển khai trên MQTT (AMQP không được hỗ trợ), trong đó

Các thiết bị nhận được yêu cầu phương thức trực tiếp về chủ đề MQTT:

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

Họ đã gói cái này trong SDK của họ, vì vậy các nhà phát triển không cần phải lo lắng về việc theo dõi cụ thể chủ đề. Bạn có thể thực hiện một cách tiếp cận tương tự.

Theo các câu trả lời khác, pub-sub không cho vay RPC và không có bất kỳ tiêu chuẩn nào, theo như tôi biết.

Thêm tài liệu ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.