Reverse Remote Procedure Call (RRPC) permite utilizar temas personalizados para comunicarse con IoT Platform. Los temas RRPC incorporan sus temas personalizados para admitir la comunicación en diversos escenarios.
Requisitos previos
Para desarrollar un dispositivo que se comunique con IoT Platform mediante temas personalizados, utilice uno de los siguientes Link SDK: C Link SDK.
Temas personalizados
|
Tema |
Formato |
Descripción |
|
Suscripción RRPC |
|
Suscribirse al tema personalizado en el mensaje de solicitud RRPC enviado por IoT Platform. |
|
Mensaje de solicitud RRPC |
|
El mensaje de solicitud RRPC enviado por IoT Platform. |
|
Mensaje de respuesta RRPC |
|
El mensaje de respuesta RRPC enviado por el dispositivo. |
El formato del tema utiliza las siguientes variables:
-
${topic}: El tema personalizado completo en IoT Platform. El formato es
/${productKey}/${deviceName}/user/${TopicShortName}.${TopicShortName}es el sufijo del tema personalizado y especifica la categoría del tema. Para obtener más información, consulte Use custom topics for communication. ${messageId}: Un ID de mensaje RRPC único generado por IoT Platform cuando el servidor llama a la operación RRpcAPI para enviar un mensaje al dispositivo. Utilice este ID para distinguir entre diferentes mensajes RRPC.
Por ejemplo, si el tema personalizado para el dispositivo device1 es a18wP***/device1/user/get, el tema para enviar un mensaje RRPC es /ext/rrpc/121307410***/a18wP***/device1/user/get.
Conectarse con RRPC
-
Envíe un mensaje RRPC desde IoT Platform.
El servidor llama a la API RRpc de IoT Platform para enviar un mensaje al dispositivo. Para obtener más información, consulte RRpc.
El siguiente ejemplo muestra cómo llamar a la API mediante el SDK de Java para IoT Platform.
Si utiliza el formato de tema personalizado, asegúrese de que el SDK de Java de IoT Platform para la nube (aliyun-java-sdk-iot) sea la versión 6.0.0 o posterior.
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-iot</artifactId> <version>6.0.0</version> </dependency>Ejemplo de llamada a la API RRpc:
RRpcRequest request = new RRpcRequest(); request.setProductKey("testProductKey"); request.setDeviceName("testDeviceName"); request.setRequestBase64Byte(Base64.getEncoder().encodeToString("hello world")); request.setTopic("/testProductKey/testDeviceName/user/get");// If you use a custom topic, pass the custom topic here. request.setTimeout(3000); RRpcResponse response = client.getAcsResponse(request);NotaTambién puede iniciar sesión en el
Portal para desarrolladores de OpenAPI
para llamar a la API
RRpc
en línea y consultar ejemplos de llamadas para los SDK de nube de IoT Platform en diferentes lenguajes.
-
Configure el dispositivo.
No se requiere ninguna configuración especial para los dispositivos que utilizan el Link SDK de C.
-
El dispositivo envía una respuesta RRPC.
El tema de solicitud y el tema de respuesta para una llamada RRPC son los mismos. El dispositivo envía la respuesta al mismo tema desde el cual recibió la solicitud.
NotaLos dispositivos solo pueden enviar mensajes de respuesta RRPC con un nivel de calidad de servicio (QoS) de 0.