MQTTの標準化されたRPCメカニズムはありますか?


10

Stack Overflowでは MQTTを介した要求/応答の相互作用の実装についての質問があります。1つの回答として、1つのトピックでリクエストを発行し、リクエストに含まれていた別のトークンでレスポンスをリッスンすることでそれを行うことができます。少し厄介ですが、機能します。

MQTTはIoT全体で広く使用されているので、相互運用性のためにこのRPCタイプの相互作用を標準化する試みはあったのでしょうか。


ちょうどこれが答えの基礎となり得るこれを見つけました:esr.net/download/specification/ESR030-LWM2M-MQTT-1.0-A.pdf。確かに、LWM2Mに密接に結合されている一般的な要求/応答仕様ではありません。
Chris Steinbach、2017

回答:


9

私はそのような基準を知りません。

他の質問への回答で指摘されているように、pub / subはRPCには適していませんが、適合するように曲げることはできます。

MQTTの長所の1つは、ペイロードが何でもかまいません。これにより、開発者はプロジェクトに最適な選択を行うことができます。


4

MQTTを介した標準化されたRPC通信方式の要件が何であるかはわかりませんが、まだ少し調べてみて、いくつかのポイントが見つかりました。

まず、標準的な方法について。上の1つのGitHubそれは、RPCプロジェクト釘の説明種類:

このモジュールは、mqtt接続用のrpcインターフェースを提供します。これは、本質的に、MQTTトピック構造をトランスポートとして使用する要求および応答戦略です。

ポイントは、スタックモデル(OSIモデルは標準)を使用し、MQTTをスタックのレイヤーの1つとして使用することです。

mqtt介したjson-rpcに関するこのプロジェクトは、MQTT を介して標準化された、または少なくともよく知られているプロトコルを使用します。

ぎこちなさについては、MQTTとRPCを最初から構築する必要はありません。代わりに、リンクされたライブラリのいずれか、またはGithubにある他のライブラリを使用します。

OK、すべての言語でGithubに基づいた準備ができていませんが、その場合、コンプライアンスは計画基準になり、残念ながら他のプロジェクト全体に影響を与える可能性があります。


本当の要件はありません。質問のきっかけは、CoAP(RFCで定義された要求/応答 pub / subメカニズムを備えている)をMQTT と比較することです。確かに、RPC用のいくつかのオープンソースライブラリがあることは、何もないよりはましです。
クリススタインバッハ

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.