カスタムトピックを使用しない場合、Revert-RPC (RRPC) では、RRPC固有のトピックを使用して、デバイスとIoT Platform間の通信を有効にできます。 このトピックでは、RRPC固有のトピックと、RRPCリクエストを開始する方法について説明します。
RRPC固有のトピック
次の表に、RRPC固有のトピックの構文を示します。
トピック | Format | 説明 |
RRPCサブスクリプショントピック | /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/+ | IoT Platformから送信されるRRPCリクエストメッセージにサブスクライブします。 |
RRPCリクエストトピック | /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId} | IoT PlatformからRRPCリクエストメッセージを送信します。 |
RRPCの応答トピック | /sys/${YourProductKey}/${YourDeviceName}/rrpc/response/${messageId} | デバイスからRRPC応答メッセージを送信します。 |
変数:
- ${YourProductKey}: この変数を、デバイスが属する製品のProductKeyに置き換えます。
- ${YourDeviceName}: この変数をデバイスのDeviceNameに置き換えます。
- ${messageId}: この変数をRRPCメッセージのIDに置き換えます。 サーバーがRRpc操作を呼び出してデバイスにメッセージを送信すると、IoT Platformはメッセージの一意のIDを生成します。
RRPCリクエストを開始する
- IoT PlatformはRRPCメッセージを送信します。
サーバーはRRpc操作を呼び出してデバイスにメッセージを送信します。 詳細については、「RRpc」をご参照ください。
次の例は、Link SDK for Javaを使用してRRpc操作を呼び出す方法を示しています。
RRpcRequest request = new RRpcRequest(); request.setProductKey("testProductKey"); request.setDeviceName("testDeviceName"); request.setRequestBase64Byte("dGhpcyBpcyBhbiBleGFtcGxl"); request.setTimeout(3000); RRpcResponse response = client.getAcsResponse (リクエスト);
説明 OpenAPI開発者ポータルにログインし、RRpc操作を呼び出します。 複数のプログラミング言語のサンプルコードを提供します。 - デバイスは、RRPC応答を送信する。
デバイスがRRPC要求を受信した後、デバイスは応答トピックにメッセージを返します。
デバイスは、/sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId} リクエストトピックから
messageId
パラメーターを抽出し、RRPCレスポンストピックを生成してIoT Platformにレスポンスを送信します。説明 デバイスは、サービス品質 (QoS) レベルが0であるRRPCメッセージのみを返すことができる。
詳細については、「Raspberry Piサーバーのリモート制御」をご参照ください。