全部產品
Search
文件中心

IoT Platform:調用自訂Topic(推薦)

更新時間:Jun 30, 2024

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接入

  1. 從物聯網平台發送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調用樣本。
  2. 裝置端接入。

    對於C Link SDK的裝置,無需做任何特殊操作。

  3. 裝置端返回RRPC響應的Topic。

    RRPC請求Topic和響應Topic格式一樣,直接將請求Topic作為響應Topic即可。

    說明 目前,僅支援裝置端返回QoS=0的RRPC響應訊息。