一、概述
1、发送服务器端网关RPC
我们来详细回顾一下如何发送命令:
为了从服务器订阅 RPC 命令,请将 SUBSCRIBE 消息发送到以下主题:
v1/gateway/rpc
并期望带有以下格式的单独命令的消息:
{"device": "Device A", "data": {"id": $request_id, "method": "toggle_gpio", "params": {"pin":1}}}
一旦设备处理了命令,网关就可以使用以下格式发回命令:
{"device": "Device A", "id": $request_id, "data": {"success": true}}
其中$request_id是您的整数请求标识符,Device A是您的设备名称,method是您的 RPC 方法名称。
v1/gateway/connect
二、案例:
ThingsBoard服务端使用RPC通过网关给设备发送消息,首先本设备需要是和网关建立通讯的,才能进行RPC的调用
1、建立设备与网关之间的通讯
建立网关与设备的链接的Topic
v1/gateway/connect
对应的设备信息
{"device":"Device A"}
2、查看设备和网关是否在线状态啊
3、通过 仪表盘,创建设备A的模拟RPC调用的窗口链接
4、在客户端的网关设备上订阅RPC网关的主题信息
v1/gateway/rpc
5、通过服务端的窗口,发送设备的命令
toggle_gpio {"pin":1}
6、查看客户端的MQTT端口是否已接受到对应的消息
7、当客户端已接受到消息后,通过网关进行回复消息接受
注意:内部的ID,必须和repuest请求过来的相同
Topic
v1/gateway/rpc
回复的消息
{"device": "Device A", "id": 13, "data": {"success": true}}