本文介绍泛化协议设备接入过程中,可能遇到的问题及解决方法。
背景信息
为了实现设备的远程管理和数据采集,设备已连接您自己的云端服务器,不便于修改设备的固件让其接入阿里云物联网平台。但您又希望复用物联网平台的功能,将设备纳入基于物联网平台的解决方案,此时,您可以使用泛化协议SDK。
关于泛化协议的更多信息,请参见什么是泛化协议SDK。具体操作,请参见基础用法。
如何与物联网平台建立连接?
BridgeBootstrap
对象,与物联网平台建立连接。
- 连接成功:
创建
BridgeBootstrap
对象时,会自动连接平台。如果无异常抛出,则认为连接成功。 - 连接失败:
如果抛出异常
BootException
,则连接失败。您可以监听该异常,以获知连接平台失败。异常发生后,建议销毁BridgeBootstrap
对象。然后,每隔约10秒再创建BridgeBootstrap
对象,尝试再次连接物联网平台。
如何主动与物联网平台断开连接?
应用程序运行时,您可以调用Http2MessageClientFactory.getClient().disconnect()
来主动断开连接。
是否需要监测与物联网平台的异常断线?
如果企业服务器与物联网平台已通过SDK建立连接,您无需监测异常断线。由于网络故障等原因导致的异常断开,SDK会自动发起重连。
如何批量生成设备证书?
您可以直接使用物联网平台提供的SDK来调用API BatchRegisterDevice,批量生成设备证书。更多信息,请参见下载云端SDK和BatchRegisterDevice。
如何获取子设备证书?
-
在泛化协议SDK的Demo中,设备信息存放于
DeviceIdentity
中,并且通过DeviceConfigManager
的getDeviceIdentity()
方法,根据传入的设备ID来获取设备证书。 -
在实际业务环境中,您需要重新实现
DeviceConfigManager
,并在ConfigFactory
的init()
中,将实现的DeviceConfigManager
传入,通过getDeviceIdentity()
从数据库中获取设备证书。
如何将子设备证书与设备关联?
推荐方法如下:
- 预先批量生成子设备证书,将子设备证书写入数据库。
- 子设备上线时,查询是否已经关联证书。
- 如果已关联,则使用该证书连接物联网平台。
- 如果尚未关联证书,则从数据库中取出一个尚未使用的证书与该设备关联。然后使用该证书,将子设备与物联网平台连接。
泛化协议SDK Demo中,设备证书存放于配置文件中。更多信息,请参见基础用法。在实际业务环境中,如果接入的设备数量大,则不推荐该方法。
如何使设备上线?
当设备连接到您的服务器后,需调用泛化协议SDK的API doOnline(),通知物联网平台设备已上线。
如何使设备离线?
当设备连接到您的服务器后,需调用泛化协议SDK的API doOffline(),通知物联网平台设备已离线。