すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:RRPC の概要

最終更新日:Feb 06, 2024

MQTT (Message Queuing Telemetry Transport) プロトコルは、非同期パブリッシュ /サブスクライブモデルを使用します。 このモデルは、ユーザーサーバーがデバイスを同期的に制御して応答を取得する必要があるシナリオには適用できません。 IoT Platformは、MQTTに基づく同期通信メカニズムを提供します。 MQTTプロトコルを変更する必要はありません。 IoT Platformは、ユーザーサーバーがデバイスにリクエストを送信するためのRRpc操作を提供します。 デバイスは、指定されたトピックを使用して要求に応答するだけでよく、サーバーは同期して応答を取得できます。

用語

期間説明
RRPCRRPCはrevert-RPCの略です。 リモートプロシージャ呼び出し (RPC) は、クライアント-サーバーモデルを使用します。 このモデルでは、基になるプロトコルを理解する必要なく、リモートサービスを要求できます。 RRPCを使用すると、サーバーからデバイスに要求を送信し、デバイスから応答を受信できます。
RRPCサブスクリプション固有のトピックデバイスがRRPCメッセージを受信するためにサブスクライブするトピック。 トピックにはワイルドカードが含まれています。
RRPCリクエストメッセージIoT Platformがデバイスに送信するメッセージ。
RRPC応答メッセージデバイスが応答としてIoT Platformに送信するメッセージ。
RRPCメッセージID各RRPCメッセージに対してIoT Platformによって生成されるID

RRPCを介した通信の仕組み

RRPC

プロセス:

  1. オプションです。 デバイスは、RRPCサブスクリプショントピックにサブスクライブします。

    IoT Platformは、MQTTに基づいてRRPCリクエストメッセージのみを送信し、RRPCレスポンスメッセージを受信できます。 デバイスがIoT Platformから送信されるRRPCデータを取得して処理する必要がある場合、デバイスは上記のトピックをサブスクライブし、開発されたデータ処理ロジックを実装する必要があります。

    • デバイスはSUBコマンドを送信して、指定されたトピックをサブスクライブし、IoT Platformからメッセージを取得できます。 デバイスのトピックのサブスクライブに使用できるサンプルコードについては、「SDKのリンク」をご参照ください。
    • デバイスがRRPCデータを処理する方法については、「RRPCの概要」をご参照ください。
  2. ユーザーサーバーは、IoT PlatformのRRpc操作を呼び出します。
  3. IoT Platformは、サーバー側RRPC要求を受信し、RRPC要求メッセージをデバイスに送信します。 メッセージ本文には、ユーザーサーバーから送信されるペイロードが含まれます。 デバイスがRRPCメッセージを受信するために使用するトピックは、IoT Platformで事前定義されています。 トピックには、メッセージのIDが含まれます。
  4. デバイスがメッセージを受信すると、デバイスは指定されたトピックを使用してRRPC応答メッセージをIoT Platformに送信します。 トピックには、リクエストメッセージのIDが含まれます。
  5. IoT Platformは、以前のRRPCリクエストメッセージと一致するレスポンスメッセージIDを抽出します。
  6. IoT Platformは、応答をユーザーサーバーに返します。
  7. オプションです。 デバイスは、デバイスがサブスクライブしているトピックからのメッセージを処理します。
説明 RRpc操作を呼び出すと、次のような場合があります。
  • デバイスがオフラインです。 この場合、IoT Platformはユーザーサーバーにエラーメッセージを返します。
  • デバイスは、タイムアウト期間 (8秒) 内にRRPC要求に応答しません。 この場合、IoT Platformはユーザーサーバーにエラーメッセージを返します。

RRPC固有のトピック

次のタイプのトピックに基づいてRRPCを実装できます。

RRPCの実装例については、「Raspberry Piサーバーのリモート制御」をご参照ください。