物联网平台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
目录
相关文章
|
3月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
202 1
PubSubClient连接物联网平台
Arduino中使用设备三元组连接阿里云物联网平台
527 0
|
数据挖掘 API
物联网平台云端调用ListAnalyticsData接口
物联网平台云端调用ListAnalyticsData接口
147 0
物联网平台云端调用ListAnalyticsData接口
|
消息中间件 物联网 API
阿里云物联网平台入门-设备消息上传
阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端API,服务端可通过调用云端API将指令下发至设备端,实现远程控制。此篇文章按照官方入门实例操作下设备消息的上传
763 0
阿里云物联网平台入门-设备消息上传
|
物联网 开发工具 数据安全/隐私保护
物联网平台中连接参数
物联网平台中连接参数
175 0
物联网平台中连接参数
HH
|
JSON 监控 物联网
阿里云物联网平台之数据解析
物联网平台定义的标准数据格式为Alink JSON。但是低配置且资源受限或者对网络流量有要求的设备,不适合直接构造JSON数据与物联网平台通信,可将原数据透传到物联网平台。物联网平台提供数据解析功能,可以根据您提交的脚本,将数据在设备自定义格式和JSON格式之间转换。
HH
1944 0
|
消息中间件 物联网 网络性能优化
物联网平台 --- 服务端响应设备端消息
服务端AMQP监听设备消息,并调用pub接口响应消息至设备端
444 0
物联网平台 --- 服务端响应设备端消息
|
物联网 Java API
物联网平台 - 云端API使用方式
物联网平台提供云端管理产品、设备、分组、Topic、规则、设备影子等API接口,和从云端发布消息的API接口。使用云端SDK,向API的服务端地址发送HTTPS/HTTP GET或POST请求,并按照API接口说明,在请求中加入相应请求参数来调用API。物联网平台根据请求的处理情况,返回处理结果
628 0
物联网平台 - 云端API使用方式
|
Java 物联网 API
阿里云物联网平台RRPC同步方式下行推送请求
该接口向指定设备发送请求消息,并同步返回响应。
449 1
阿里云物联网平台RRPC同步方式下行推送请求
|
传感器 监控 JavaScript
IoT 物联网平台如何实现 100万/秒 消息广播?
IoT 物联网平台如何实现 100万/秒 消息广播?
1599 0
IoT 物联网平台如何实现 100万/秒 消息广播?

相关产品

  • 物联网平台