MQTT协议是基于PUB/SUB的异步通信模式,不适用服务端同步控制设备端返回结果的场景。物联网平台基于MQTT协议制定了一套请求和响应的同步机制,无需改动MQTT协议即可实现同步通信。物联网平台提供RRpc接口给服务端,设备端仅需按照固定的格式回复PUB消息,服务端可同步获取设备端的响应结果。
名词解释
名词 | 说明 |
---|---|
RRPC | 是Revert-RPC的简称。RPC(Remote Procedure Call)是指采用客户机/服务器模式,您不需要了解底层技术协议,即可远程请求服务。RRPC则可以实现由服务端请求设备端,并能够使设备端响应的功能。 |
RRPC订阅Topic | 设备端订阅RRPC消息时传递的Topic,含有通配符。 |
RRPC请求消息 | 物联网平台下发给设备端的消息。 |
RRPC响应消息 | 设备端回复给物联网平台的消息。 |
RRPC消息ID | 物联网平台为每次RRPC调用,生成的唯一消息ID,可标识不同RRPC消息。 |
RRPC原理

具体流程如下:
- (可选)设备端订阅RRPC相关Topic。
物联网平台根据MQTT协议,仅定制了RRPC消息的请求和响应机制。设备端若要获取物联网平台下发的RRPC消息数据,并做应对处理,需要在设备端先订阅Topic,然后开发数据处理逻辑。
- 设备可通过发送SUB指令订阅指定Topic,实现从物联网平台获取消息。开发方法,请参见Link SDK中订阅Topic的代码示例。
- 在设备端开发处理RRPC消息数据的方法,请参见RRPC功能开发示例。
- 用户服务器调用物联网平台的RRpc接口。
- 物联网平台收到服务器端RRPC调用请求,向设备下发一条RRPC请求消息。消息体为用户传入的数据,Topic为物联网平台定义的Topic,且携带RRPC消息ID。
- 设备收到下行消息后,按照指定Topic格式(包含之前物联网平台下发的唯一RRPC消息ID),回复一条RRPC响应消息给物联网平台。
- 物联网平台提取RRPC消息ID,和之前的RRPC请求消息匹配。
- 物联网平台将响应结果返回给用户服务器。
- (可选)设备对已订阅Topic的消息进行处理。
说明 调用RRpc接口时,可能出现以下情况:
- 设备不在线,物联网平台会向用户服务器,返回设备离线的错误信息。
- 设备未在超时时间(8秒)内回复RRPC响应消息,物联网平台会向用户服务器,返回超时的错误信息。
使用Topic
不同Topic格式使用方法不同:
- 调用自定义Topic(推荐):将RRPC与自定义Topic结合,实现不同场景需求。
- 调用RRPC默认通信Topic(不推荐):若您未使用自定义Topic,物联网平台系统会使用默认通信Topic进行通信,应用场景相对单一,不推荐使用。
RRPC调用实践示例,请参见远程控制树莓派服务器。