Revert-RPC (RRPC) supports specific topics for communicating with IoT Platform. Learn about the RRPC topic formats and access methods.
RRPC topics
RRPC topics have the following format:
| Topic | Format | Description |
| RRPC subscription | /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/+ |
Subscribe to RRPC request messages from IoT Platform. |
| RRPC request message | /sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId} |
An RRPC request message from IoT Platform. |
| RRPC response message | /sys/${YourProductKey}/${YourDeviceName}/rrpc/response/${messageId} |
An RRPC response message from a device. |
In the topic format:
- ${YourProductKey}: The ProductKey of the product associated with your device.
- ${YourDeviceName}: The name of your device.
- ${messageId}: A unique RRPC message ID generated by IoT Platform when the server calls the RRpc API operation to send a message to the device. Use this ID to distinguish between different RRPC messages.
RRPC access
- IoT Platform sends an RRPC request.
The server calls the RRpc API operation to send a request to the device. For more information, see RRpc.
The following example uses the Java SDK:
RRpcRequest request = new RRpcRequest(); request.setProductKey("testProductKey"); request.setDeviceName("testDeviceName"); request.setRequestBase64Byte("dGhpcyBpcyBhbiBleGFtcGxl"); request.setTimeout(3000); RRpcResponse response = client.getAcsResponse(request);Note Log on to the OpenAPI Developer Portal to call the RRpc API operation online and view cloud SDK call examples in different languages. - The device sends an RRPC response.
After receiving an RRPC request, the device sends a response message to the corresponding response topic.
Extract the messageId from the request topic (/sys/${YourProductKey}/${YourDeviceName}/rrpc/request/${messageId}), construct the corresponding RRPC response topic, and send the response to IoT Platform.
Note Devices can only send RRPC response messages with a Quality of Service (QoS) level of 0.
For an example, see Remotely control a Raspberry Pi server.