RRPC支持调用系统Topic与云端通信。本文介绍RRPC通信的系统Topic和接入方法。

系统Topic

RRPC调用的系统Topic格式如下:

  • RRPC请求消息Topic:/sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId}
  • RRPC响应消息Topic:/sys/${YourProductKey}/${YourDeviceName}/rrpc/response/${messageId}
  • RRPC订阅Topic:/sys/${YourProductKey}/${YourDeviceName}/rrpc/request/+

其中,${YourProductKey}是您的设备所属产品的ProductKey,${YourDeviceName}是您的设备的名称,${messageId}是云端生成的唯一的RRPC消息ID。

RRPC接入

  • 云端发送RRPC消息。

    服务端调用云端API RRpc接口向设备发送消息。接口调用方法,请参见RRpc

    以使用Java SDK为例,调用方式:

    RRpcRequest request = new RRpcRequest();
    request.setProductKey("testProductKey");
    request.setDeviceName("testDeviceName");
    request.setRequestBase64Byte(Base64.getEncoder().encodeToString("hello world"));
    request.setTimeout(3000);
    RRpcResponse response = client.getAcsResponse(request);
  • 设备端返回RRPC响应的Topic。

    设备端收到RRPC请求之后,需要根据RRPC请求Topic的格式,返回响应消息到对应的响应Topic。

    设备端从收到消息的Topic(/sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId})中提取出messageId,然后拼装出对应的RRPC响应Topic,发送响应给云端。

    说明 目前,仅支持设备端返回QoS=0的RRPC响应消息。