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

简介: 本次分享详细说明物联网平台RRpc请求调用

作者:三烽

一、简介

什么是RRpc?

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

二、RRpc原理

image.png

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

三、Topic格式

系统Topic:

RRPC请求消息Topic:/sys/{YourDeviceName}/rrpc/request/${messageId}
RRPC响应消息Topic:/sys/{YourDeviceName}/rrpc/response/${messageId}
RRPC订阅Topic:/sys/{YourDeviceName}/rrpc/request/+
其中,是您的设备所属产品的,{YourDeviceName}是您的设备的名称,${messageId}是云端生成的唯一的RRPC消息ID。

自定义Topic

RRPC请求消息Topic:/ext/rrpc/{topic}
RRPC响应消息Topic:/ext/rrpc/{topic}
RRPC订阅Topic:/ext/rrpc/+/${topic}
其中是云端生成的唯一的消息,{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.png

image.png

2、错误调试原因分析
设备不在线
image.png

设备未在规定时间内响应
image.png

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.png

五、相关限制

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
相关文章
|
Java 物联网 API
阿里云物联网平台RRPC同步方式下行推送请求
该接口向指定设备发送请求消息,并同步返回响应。
556 15
阿里云物联网平台RRPC同步方式下行推送请求
HH
|
物联网 API 开发工具
物联网平台之python语言的设备端接入、云端sdk集成调用
本文介绍如何调用Python语言的Paho MQTT类库,将设备接入阿里云物联网平台,并进行消息收发。 以及物联网平台提供Python语言的云端SDK供开发人员使用。本文介绍云端Python SDK的安装和配置,及使用Python SDK调用云端API的示例。
HH
945 0
物联网平台之python语言的设备端接入、云端sdk集成调用
HH
|
物联网 API 开发工具
阿里云物联网平台之Open Api调用
物联网平台可以通过调用云端API,以实现物联网平台的云端能力,如产品管理、设备管理、Topic管理、数据流转规则管理、消息通信等。 (本文以Common sdk和云端sdk创建设备为例)。
HH
2678 15
阿里云物联网平台之Open Api调用
|
XML 物联网 Java
阿里云物联网平台之云端API调用(即云端开发)
本文介绍如何调用物联网平台的云端API,很多时候控制台上操作不太方便,需要通过API调用来完成或者通过调用API封装接口,以做到二次开发等。如产品管理,设备管理,规则创建等。分别介绍通过common SDK和iot SDK的使用。
5600 15
阿里云物联网平台之云端API调用(即云端开发)
|
物联网 API 数据安全/隐私保护
阿里云物联网平台调用云端api常见问题汇总
云端调用api时推荐使用openapi测试一下下发的api,参考对应参数修改
4308 15
阿里云物联网平台调用云端api常见问题汇总
|
物联网 API
物联网平台 web开发工作台调用API
参考官方文档调用Iot Studio的功能 https://studio.iot.aliyun.com/studioservice-doc#xf23qo.html
1697 16
物联网平台 web开发工作台调用API
|
存储 物联网 数据挖掘
阿里云物联网平台 - iot studio调用 “新版本数据分析” 接口展示设备数据
物联网数据分析LA(Link Analytics)是阿里云为物联网开发者提供的数据智能分析产品,针对物联网数据特点,提供海量数据的存储备份、资产管理、报表分析和数据服务等能力,帮助企业用户更容易地挖掘物联网数据中的价值
566 0
阿里云物联网平台 - iot studio调用 “新版本数据分析” 接口展示设备数据
|
SQL 存储 数据采集
阿里云物联网平台 - iot studio调用 “老版本数据分析” 接口展示设备数据
老版本数据分析:是阿里云为物联网开发者提供的设备智能分析服务,全链路覆盖了设备数据采集、管理(存储)、清洗、分析等环节,有效降低了数据分析门槛,实现了设备数据与业务数据的融合分析透视
386 0
阿里云物联网平台 - iot studio调用 “老版本数据分析” 接口展示设备数据
|
SQL 数据可视化 数据挖掘
阿里云物联网平台IoT Studio调用数据分析API示例
本文主要介绍如何在IoT Sudio Web可视化和服务开发中如果调用数据分析API。
阿里云物联网平台IoT Studio调用数据分析API示例
|
网络协议 Java 物联网
阿里云物联网平台NET SDK实现RRPC服务端调用
本文介绍如何使用NET SDK在本地实现RRPC的服务端调用。
阿里云物联网平台NET SDK实现RRPC服务端调用

相关产品

  • 物联网平台