リバースリモートプロシージャコール (RRPC) を使用すると、カスタムトピックを使用して IoT Platform と通信できます。RRPC トピックはカスタムトピックを組み込み、さまざまなシナリオでの通信をサポートします。
前提条件
カスタムトピックを使用して IoT Platform と通信するデバイスを開発するには、次のいずれかの Link SDK を使用します: C Link SDK。
カスタムトピック
| トピック | 形式 | 説明 |
| RRPC サブスクリプション | /ext/rrpc/+/${topic} |
IoT Platform から送信される RRPC リクエストメッセージに含まれるカスタムトピックをサブスクライブします。 |
| RRPC リクエストメッセージ | /ext/rrpc/${messageId}/${topic} |
IoT Platform が送信する RRPC リクエストメッセージ。 |
| RRPC レスポンスメッセージ | /ext/rrpc/${messageId}/${topic} |
デバイスが送信する RRPC レスポンスメッセージ。 |
トピック形式は、次の変数を使用します:
- ${topic}:IoT Platform の完全なカスタムトピック。形式は
${productKey}/${deviceName}/user/${TopicShortName}です。${TopicShortName}はカスタムトピックのサフィックスであり、トピックカテゴリを指定します。 詳細については、「カスタムトピックを使用した通信」をご参照ください。 - ${messageId}: この変数をRRPCメッセージのIDに置き換えます。 サーバーがRRpc操作を呼び出してデバイスにメッセージを送信すると、IoT Platformはメッセージの一意のIDを生成します。
たとえば、デバイス [device1] のカスタムトピックが a18wP***/device1/user/get の場合、RRPC メッセージを送信するためのトピックは /ext/rrpc/121307410***/a18wP***/device1/user/get です。
RRPC での接続
- IoT Platform から RRPC メッセージを送信します。
サーバーは IoT Platform の RRpc API を呼び出して、デバイスにメッセージを送信します。 詳細については、「RRpc」をご参照ください。
次の例は、IoT Platform 向け Java SDK を使用して API を呼び出す方法を示しています。
カスタムトピック形式を使用する場合、クラウド向け IoT Platform Java SDK (aliyun-java-sdk-iot) のバージョンが 6.0.0 以降であることを確認してください。
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-iot</artifactId> <version>6.0.0</version> </dependency>RRpc API の呼び出し例:
RRpcRequest request = new RRpcRequest(); request.setProductKey("testProductKey"); request.setDeviceName("testDeviceName"); request.setRequestBase64Byte(Base64.getEncoder().encodeToString("hello world")); request.setTopic("/testProductKey/testDeviceName/user/get"); // カスタムトピックを使用する場合は、ここにカスタムトピックを渡します。 request.setTimeout(3000); RRpcResponse response = client.getAcsResponse(request);説明 また、OpenAPI 開発者ポータルにログオンして、オンラインで RRpc API を呼び出し、さまざまな言語の IoT Platform クラウド SDK の呼び出し例を表示することもできます。 - デバイスを設定します。
C Link SDK を使用するデバイスには、特別な設定は必要ありません。
- デバイスが RRPC レスポンスを送信します。
RRPC 呼び出しのリクエストトピックとレスポンストピックは同じです。デバイスは、リクエストを受信したトピックと同じトピックにレスポンスを送信します。
説明 デバイスは、サービス品質 (QoS) レベル 0 でのみ RRPC レスポンスメッセージを送信できます。