远程调用 - RPC通道
目前有设备需求主动查询云端数据,然后根据得到数据来做相应的处理。本文介绍设备的RPC通道调用流程
请求流程
sequenceDiagram
participant 设备
participant 物联网平台
participant 业务服务
设备->>物联网平台: 通过MQTT发送远程请求
物联网平台->>业务服务: 解析报文,组装请求发起业务接口调用
业务服务-->>物联网平台: 业务接口处理完,返回请求结果,并填充MQTT报文
物联网平台-->>设备: 通过MQTT返回业务报文
RPC请求发起
sys/{product_id}/{device_id}/thing/rpc
说明:
设备端用于发起RPC请求
示例:
{
"id": "123",
"version": "1.0",
"api": "/api/xxxxxx/xxxx",
"type": "get",
"params": {
"projectId": 123123123123
},
"body": {
"meetingInfo": {
"user": "213"
}
},
"time": 1234
}
字段说明:
参数 | 类型 | 说明 |
---|---|---|
id | String | 消息ID,用于标识每一条Payload,每个消息ID在当前设备中具有唯一性 |
version | String | 协议版本号 |
api | String | 访问的接口路由 |
type | String | 访问的接口类型,GET、POST、PUT、DELETE |
params | Object | 请求的query参数 |
body | Object | 请求的body参数 |
time | Long | 消息发生时间 |
RPC请求回复
sys/{product_id}/{device_id}/thing/rpc/response
成功返回示例:
{
"id":"123",
"code":200,
"data":{},
"message":"success",
"version":"1.0",
"time":1724055748710
}
失败返回示例:
{
"code": 460,
"data": {},
"id": "123",
"message": "request parameter error!",
"version": "1.0",
"time":1724055748710
}
字段说明:
参数 | 类型 | 说明 |
---|---|---|
id | String | 消息ID号,String类型,且每个消息ID在当前设备中具有唯一性 |
code | Integer | 结果状态码。 |
message | String | 返回结果信息。请求成功时,返回success |
version | String | 协议版本号,与请求参数中version相同 |
data | Object | 请求返回的数据 |
time | Long | 消息发生时间 |
最后修改时间: 6 months ago