设备绑定开发指南
设备绑定解绑方式和场景
目前支持两种方式的正式设备绑定和解绑,分别为AppSDK接口和云端API接口。如下图所示:
绑定和解绑方式 | 链接说明 | 备注(适用场景) |
---|---|---|
AppSDK接口 | Android: 设备绑定 设备解绑 iOS: 设备绑定 设备解绑 | 适合自己的云平台不关注或无需维护设备添加/解绑的场景 |
云端API接口 | 绑定设备 解绑设备 | 适合设备添加/解绑必须先走自己的云平台,再调用RTCX平台绑定/解绑接口的场景 |
设备绑定详细流程说明
通过AppSDK绑定
图中一 ~ 二和1~7标号(步骤)解释如下:
标号一:客户设备端(以下简称设备端)通过自己实现或集成三方SDK。针对有线网络场景,此步骤不依赖DeviceSDK存在。如果是无线网络场景,需要依赖步骤2,也就是通过二维码或蓝牙等方式获取到无线网络的信息,才能进行配网,连通设备端网络。
标号二:设备端集成DeviceSDK,按要求先进行初始化。后调用xs_iot_open,再调用xs_iot_connect。如果是有线网络场景,则与RTCX云平台建立设备信令长连接并验证激活码的有效性。如果是无线网络场景,则会等待,依赖步骤一的无线网络场景完成。这个过程也称为设备上线。
标号1:客户自有客户端(以下简称客户端)通过Android AppSDK的设备绑定流程步骤1中的调start方法,从RTCX云平台获取到bindToken。客户端只监听设备绑定成功与否的回调结果即可。注意:AppSDK会自动监听是否可以发起设备绑定请求。
- iOS AppSDK的设备绑定流程类似,请点击。
标号2:设备绑定之bindToken传递:客户端需要将bindToken和配网信息(无线网络场景下)通过二维码或者蓝牙传递给设备端,也可以在配网之后通过局域网通信方式传给设备端,没有强制要求。设备端解析成功之后,将bindToken信息通过xs_iot_setBindToken接口传递给IoTSDK。
标号3:设备绑定之bindToken验证:DeviceSDK(IoTSDK)通过设备信令到RTCX云平台验证bindToken有效性。 设备端需要监听设备绑定是否成功的结果。
标号4:云平台bindToken验证有效后,会通过信令向AppSDK发送设备可绑定的回调。AppSDK收到回调后,就会自动发起设备绑定请求。
标号5:AppSDK向RTCX云平台发起绑定设备请求,云平台执行设备端和客户端的绑定动作。由于是HTTPS同步请求,AppSDK可以获取到云平台的绑定结果。结果会回调给监听的客户端,客户端就可以知道设备绑定是否成功了。
- 1和5拆分开,主要是为了确保设备端就在就安装者在身边,降低串号的风险。
- 注意:步骤4和5的衔接为AppSDK自动完成,无需客户端的参与。
标号6:云平台在绑定成功后,会生成一个deviceToken,通过设备信令发送给DeviceSDK。设备端会收到DeviceSDK回调的绑定结果,设备端需要保存该deviceToken。后deviceSDK向云平台进行业务请求,会携带该deviceToken,作为业务鉴权凭证。
标号7:云平台绑定成功后的消息也会打入消息队列,客户云平台可以消费消息队列,获取设备绑定成功的消息。
通过AppSDK解绑
通过AppSDK解绑类似AppSDK绑定,这里不再详述。
通过云端API接口绑定和解绑
客户自己的云平台需关注或维护设备的绑定和解绑。此时设备绑定和解绑必须先走自己的云平台,再调用RTCX云平台绑定接口和解绑接口。相比于先调用自己的云平台设备绑定和解绑,再调用AppSDK接口来请求RTCX云平台设备绑定和解绑,分两步的方式,会降低客户自有客户端设备绑定和解绑的数据不一致性问题。
特别说明
- 通过DemoApp绑定的设备,如果使用相同的ProductKey/DeviceName,以及相同的账号登录客户自有的客户端,则可以看到DemoApp添加的设备。反之亦然。
- 无论通过哪种方式,设备都要自己实现配网(DeviceSDK不支持配网)。另外在AppSDK接口情况下,还要把获取的bindToken自行传递给DeviceSDK。