RRPC支援調用自訂Topic與物聯網平台通訊,且相關Topic中包含了您自訂的完整Topic,可實現不同情境的通訊需求。本文介紹RRPC自訂Topic和接入方法。
前提條件
已完成開發裝置,支援裝置通過自訂Topic與物聯網平台通訊。您可使用以下Link SDK開發裝置:C Link SDK。
自訂Topic
Topic | 格式 | 說明 |
RRPC訂閱 | /ext/rrpc/+/${topic} | 您需訂閱物聯網平台下發的RRPC請求訊息中的自訂Topic。 |
RRPC請求訊息 | /ext/rrpc/${messageId}/${topic} | 物聯網平台下發的RRPC請求訊息。 |
RRPC響應訊息 | /ext/rrpc/${messageId}/${topic} | 裝置上行的RRPC響應訊息。 |
以上Topic格式中:
- ${topic}:您在物聯網平台的完整自訂Topic,即為
/${productKey}/${deviceName}/user/${TopicShortName}
。其中
${TopicShortName}
為自訂的Topic類,即自訂Topic的尾碼。更多資訊,請參見使用自訂Topic通訊。 - ${messageId}:服務端調用物聯網平台的RRpc介面向裝置下發訊息時,物聯網平台產生的唯一的RRPC訊息ID,可用於區分不同的RRPC訊息。
例如裝置device1的自訂Topica18wP***/device1/user/get
,發起RRPC訊息的Topic為/ext/rrpc/121307410***/a18wP***/device1/user/get
。
RRPC接入
- 從物聯網平台發送RRPC訊息。
服務端調用物聯網平台API的RRpc介面向裝置發送訊息。更多資訊,請參見RRpc。
以使用物聯網平台雲端Java SDK為例,調用方式如下。
使用自訂Topic格式時,您需要確保使用的物聯網平台雲端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介面的樣本:
RRpcRequest request = new RRpcRequest(); request.setProductKey("testProductKey"); request.setDeviceName("testDeviceName"); request.setRequestBase64Byte(Base64.getEncoder().encodeToString("hello world")); request.setTopic("/testProductKey/testDeviceName/user/get");//如果是自訂Topic調用方式,在這裡傳遞自訂Topic。 request.setTimeout(3000); RRpcResponse response = client.getAcsResponse(request);
說明 請登入OpenAPI開發人員門戶,線上調用RRpc介面,查看物聯網平台的多種語言云端SDK調用樣本。 - 裝置端接入。
對於C Link SDK的裝置,無需做任何特殊操作。
- 裝置端返回RRPC響應的Topic。
RRPC請求Topic和響應Topic格式一樣,直接將請求Topic作為響應Topic即可。
說明 目前,僅支援裝置端返回QoS=0的RRPC響應訊息。