设备绑定开发指南
引言
目前DemoApp(以Android为例)支持的设备绑定效果见设备绑定【重要】。
设备端存在4G【4G无线】/有线/局域网(设备热点模式)网络连接的情况。也存在使用App网络进行二维码/蓝牙配网,最终使用Wifi无线网络,或手机AP热点模式下使用手机4G/5G无线网络的情况。
设备绑定解绑方式和场景
目前支持两种方式的设备绑定和解绑,分别为云端API接口和AppSDK接口。如下表所示:
绑定和解绑方式 | 链接说明 | 备注(适用场景) |
---|---|---|
云端API接口 (建议模式) | 绑定设备 解绑设备 | 适合客户有云平台,有设备管理需求(比如:使用自己的设备列表),有历史设备 适合客户使用自有账号体系,对接多个云平台的场景 适合客户前期使用相速通用版方案,后计划迁移使用相速私有化部署模式的情况 |
AppSDK接口 | Android: 设备绑定 设备解绑 iOS: 设备绑定 设备解绑 | 适合客户无云平台或不关注设备绑定到云平台的场景 |
通过云端API接口绑定和解绑【重要】
- 使用自有账号体系下,强烈建议客户使用云端接口绑定方式(相比AppSDK绑定方式更简单且能保持数据一致性)
- 强烈建议客户自己管理设备,使用自己的设备列表(可以兼容历史系统以及方便后续升级到私有化部署模式)
建议客户优先使用自己的云平台管理设备,比如:App上使用自己的设备列表。这样可以兼容历史数据,可以对接多个云平台等。尤其是在使用了自有账号体系情况下,强烈建议客户自己管理设备。
设备绑定和解绑先走自己的云平台,再调用RTCX云平台绑定接口和解绑接口,这样充分保证了客户云平台与RTCX云平台数据的一致性,同时云端绑定和解绑接口是同步的,使用简单,无需监听消息网关中设备的绑定状态。
另外,客户的App绑定自己的云平台可以参考相速AppSDK绑定的实现(见下图标号1)。
图中一 ~ 二解释如下:
标号一:客户设备端(以下简称设备端)自行通过配网流程,确保设备端网络连通。
标号二:设备端集成DeviceSDK,按要求先进行初始化。后调用xs_iot_open,再调用xs_iot_connect。设备网络连通情况下,AppSDK会与RTCX云平台建立设备信令长连接并验证激活码的有效性,这个过程也称为设备上线。
通过云端接口绑定,无论设备是否上线,激活码等无异常情况下都会成功。设备上线可以在云端绑定成功前后。
如果客户在海外存在多机房的情况,则绑定设备时,建议就近调用某个区域中心的网关接口。先获取用户所属的数据中心(任何一个区域数据中心都支持),再调用指定数据中心的绑定或解绑接口。通过AppSDK绑定和解绑
1. AppSDK绑定bindToken(设备扫手机二维码)模式
用于设备扫App配网二维码绑定的场景,支持测试设备和正式量产设备。
图中一 ~ 二和1~7标号(步骤)解释如下:
标号一:客户设备端(以下简称设备端)通过自己实现或集成三方SDK。针对无线网络场景,需要依赖步骤2(标号2),也就是通过二维码或蓝牙等方式获取到无线网络的信息,才能进行配网,连通设备端网络。
标号二:设备端集成DeviceSDK,按要求先进行初始化。后调用xs_iot_open,再调用xs_iot_connect。如果是有线网络场景,则与RTCX云平台建立设备信令长连接并验证激活码的有效性。如果是无线网络场景,则会等待,依赖步骤一的无线网络场景完成。这个过程也称为设备上线。
标号1:客户自有客户端(以下简称客户端)通过Android AppSDK的设备绑定流程中的BIND_TOKEN模式,调用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:云平台绑定成功后的消息也会打入消息队列,客户云平台可以消费消息队列,获取设备绑定成功的消息。
2. AppSDK绑定扫码激活(又称快速绑定)模式
用于4G或有线设备无需配网,直接通过App来扫设备信息二维码进行绑定的场景。支持测试设备和正式量产设备。
图中一 ~ 二和1~6标号(步骤)解释如下:
标号一:客户设备端(以下简称设备端)通过自己实现或集成三方SDK。此步骤不依赖DeviceSDK存在。
标号二:设备端集成DeviceSDK,按要求先进行初始化。后调用xs_iot_open,再调用xs_iot_connect。因为网络已经连通,设备与RTCX云平台建立设备信令长连接并验证激活码的有效性。这个过程也称为设备上线。
标号1:客户自有客户端(以下简称客户端)通过Android AppSDK的设备绑定流程中的SCAN_QUICK_ACTIVE模式,调用start方法(支持传入productKey和deviceName方法)。客户端只监听设备绑定成功与否的回调结果即可。
- iOS AppSDK的设备绑定流程类似,请点击。
标号2:设备绑定之bindToken传递:平台端将bindToken通过设备信令传递给设备端,设备端解析成功之后,执行绑定操作(见标号3)。
标号3:设备绑定之bindToken验证:DeviceSDK(IoTSDK)通过设备信令到RTCX云平台验证bindToken有效性。 设备端需要监听设备绑定是否成功的结果。
标号4:云平台bindToken验证有效后,会通过信令向AppSDK发送设备绑定结果的回调。AppSDK收到回调后,提示客户端设备绑定结果。
标号5:云平台在绑定成功后,会生成一个deviceToken,通过设备信令发送给DeviceSDK。设备端会收到DeviceSDK回调的绑定结果,设备端需要保存该deviceToken。后deviceSDK向云平台进行业务请求,会携带该deviceToken,作为业务鉴权凭证。
标号6:云平台绑定成功后的消息也会打入消息队列,客户云平台可以消费消息队列,获取设备绑定成功的消息。
设备解绑流程说明
通过AppSDK解绑类似AppSDK绑定,参考AppSDK提供的相关接口即可。
特别说明
- 通过DemoApp绑定的设备,如果使用相同的ProductKey/DeviceName,以及相同的账号登录客户自有的客户端,则可以看到DemoApp添加的设备。反之亦然。
- 无论通过哪种AppSDK绑定方式,设备都要自己实现配网(DeviceSDK不支持配网)。