物联网平台RRpc请求调用说明

简介: 物联网平台RRpc请求调用

一、简介

什么是RRpc?

MQTT协议是基于PUB/SUB的异步通信模式,不适用于服务端同步控制设备端返回结果的场景。物联网平台基于MQTT协议制定了一套请求和响应的同步机制,无需改动MQTT协议即可实现同步通信。物联网平台提供API给服务端,设备端只需要按照固定的格式回复PUB消息,服务端使用API,即可同步获取设备端的响应结果。

二、RRpc原理

image
1、物联网平台收到来自用户服务器的RRPC调用,下发一条RRPC请求消息给设备。消息体为用户传入的数据,Topic为物联网平台定义的Topic,其中含有唯一的RRPC消息ID。
2、设备收到下行消息后,按照指定Topic格式(包含之前云端下发的唯一的RRPC消息ID)回复一条RRPC响应消息给云端,云端提取出Topic中的消息ID,和之前的RRPC请求消息匹配上,然后回复给用户服务器。
3、如果调用时设备不在线,云端会给用户服务器返回设备离线的错误;如果设备没有在超时时间内(8秒内)回复RRPC响应消息,云端会给用户服务器返回超时错误。

三、Topic格式

系统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。

自定义Topic
RRPC请求消息Topic:/ext/rrpc/${messageId}/${topic}
RRPC响应消息Topic:/ext/rrpc/${messageId}/${topic}
RRPC订阅Topic:/ext/rrpc/+/${topic}
其中${messageId}是云端生成的唯一的RRPC消息ID,${topic}是您的自定义Topic。
【特别注意】在调用API接口时,传入自定义Topic就是上面提到的topic,不需要传前面的/ext/rrpc/${messageId}

四、API调试

本博客以阿里云在线调试平台为例,进行RRpc接口的调试,链接为:https://api.aliyun.com/?spm=a2c4g.11186623.2.12.680f3d29WOpUay#/?product=Iot&api=RRpc&tab=DEMO〈=JAVA

1、参数填写(第一张图为默认系统topic,第二张图为自定义topic,无论哪个topic都需要设备先进行订阅)
image
image
2、错误调试原因分析
设备不在线
image
设备未在规定时间内响应
image
3、成功调用接口
设备端收到RRpc请求后需要及时响应(以设备端java sdk为例,在监听方法中进行响应,响应代码如下)

// 接收系统RRPC请求并回复RRPC响应
String response = topic.replace("/request/", "/response/");
try {
    publish(response, new String((byte[]) aMessage.getData(), "UTF-8"));
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

image

五、相关限制

1、目前,仅支持设备端返回QoS=0的RRPC响应消息。
2、云端和设备端之间使用自定义Topic进行RRPC通信的条件:
a.云端传递的Topic字段不为空。
b.设备端在建立连接(connect)时传递了ext=1参数。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
数据挖掘 API
物联网平台云端调用ListAnalyticsData接口
物联网平台云端调用ListAnalyticsData接口
147 0
物联网平台云端调用ListAnalyticsData接口
|
消息中间件 物联网 API
阿里云物联网平台入门-设备消息上传
阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。此篇文章按照官方入门实例操作下设备消息的上传
761 0
阿里云物联网平台入门-设备消息上传
|
物联网 开发工具 数据安全/隐私保护
物联网平台中连接参数
物联网平台中连接参数
166 0
物联网平台中连接参数
HH
|
JSON 监控 物联网
阿里云物联网平台之数据解析
物联网平台定义的标准数据格式为Alink JSON。但是低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信,可将原数据透传到物联网平台。物联网平台提供数据解析功能,可以根据您提交的脚本,将数据在设备自定义格式和JSON格式之间转换。
HH
1902 0
|
消息中间件 物联网 网络性能优化
物联网平台 --- 服务端响应设备端消息
服务端AMQP监听设备消息,并调用pub接口响应消息至设备端
423 0
物联网平台 --- 服务端响应设备端消息
|
物联网 Java API
物联网平台 - 云端API使用方式
物联网平台提供云端管理产品、设备、分组、Topic、规则、设备影子等API接口,和从云端发布消息的API接口。使用云端SDK,向API的服务端地址发送HTTPS/HTTP GET或POST请求,并按照API接口说明,在请求中加入相应请求参数来调用API。物联网平台根据请求的处理情况,返回处理结果
621 0
物联网平台 - 云端API使用方式
|
Java 物联网 API
阿里云物联网平台RRPC同步方式下行推送请求
该接口向指定设备发送请求消息,并同步返回响应。
449 1
阿里云物联网平台RRPC同步方式下行推送请求
|
XML 物联网 Java
阿里云物联网平台之云端API调用(即云端开发)
本文介绍如何调用物联网平台的云端API,很多时候控制台上操作不太方便,需要通过API调用来完成或者通过调用API封装接口,以做到二次开发等。如产品管理,设备管理,规则创建等。分别介绍通过common SDK和iot SDK的使用。
5201 0
阿里云物联网平台之云端API调用(即云端开发)
|
物联网 API
阿里云物联网平台异步服务下发
异步服务下发需要调用的topic 云端下发:/sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier} 设备端响应topic:/sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}_reply
2068 0
阿里云物联网平台异步服务下发
|
安全 网络协议 物联网
阿里云物联网平台C-SDK 4.x版本网关子设备如何上报物模型?
物联网设备很多都是微型嵌入式级别的,集成SDK一方面耗费资源、影响设备性能、增加成本,另一方面对于商家来说新入网一款设备带来极大的不便,集成SDK要进行开发(设备厂家要进行额外的定制),需要更新固件程序。所以阿里云物联网平台提供了一种网关-子设备的入网模式,为商家新入网设备提供便利。网关设备属于和物联网平台直连设备,子设备不和物联网平台连接,那么子设备又是如何进行物模型上报(物模型上报指的是设备端将物模型数据发送给物联网平台)呢?尤其是C-SDK(网关集成SDK),官方没有现成的Demo。 此篇文章将阐述C-SDK4.X版本网关子设备上报物模型的业务流程原理和Demo源码。
3126 0
阿里云物联网平台C-SDK 4.x版本网关子设备如何上报物模型?

相关产品

  • 物联网平台