本文介绍泛化协议设备接入过程中,可能遇到的问题及解决方法。

背景信息

为了实现设备的远程管理和数据采集,设备已连接您自己的云端服务器,不便于修改设备的固件让其接入阿里云物联网平台。但您又希望复用物联网平台的功能,将设备纳入基于物联网平台的解决方案,此时,您可以使用泛化协议SDK。

关于泛化协议的更多信息,请参见什么是泛化协议SDK。具体操作,请参见基础用法

如何与物联网平台建立连接?

在应用程序初始化时,通过创建类BridgeBootstrap对象,与物联网平台建立连接。
  • 连接成功:

    创建BridgeBootstrap对象时,会自动连接平台。如果无异常抛出,则认为连接成功。

  • 连接失败:

    如果抛出异常BootException,则连接失败。您可以监听该异常,以获知连接平台失败。异常发生后,建议销毁BridgeBootstrap对象。然后,每隔约10秒再创建BridgeBootstrap对象,尝试再次连接物联网平台。

如何主动与物联网平台断开连接?

应用程序运行时,您可以调用Http2MessageClientFactory.getClient().disconnect()来主动断开连接。

是否需要监测与物联网平台的异常断线?

如果企业服务器与物联网平台已通过SDK建立连接,您无需监测异常断线。由于网络故障等原因导致的异常断开,SDK会自动发起重连。

如何批量生成设备证书?

您可以直接使用物联网平台提供的SDK来调用API BatchRegisterDevice,批量生成设备证书。更多信息,请参见下载云端SDKBatchRegisterDevice

如何获取子设备证书?

  • 在泛化协议SDK的Demo中,设备信息存放于DeviceIdentity中,并且通过DeviceConfigManagergetDeviceIdentity()方法,根据传入的设备ID来获取设备证书。

  • 在实际业务环境中,您需要重新实现DeviceConfigManager,并在ConfigFactoryinit()中,将实现的DeviceConfigManager传入,通过getDeviceIdentity()从数据库中获取设备证书。

如何将子设备证书与设备关联?

推荐方法如下:

  1. 预先批量生成子设备证书,将子设备证书写入数据库。
  2. 子设备上线时,查询是否已经关联证书。
    • 如果已关联,则使用该证书连接物联网平台。
    • 如果尚未关联证书,则从数据库中取出一个尚未使用的证书与该设备关联。然后使用该证书,将子设备与物联网平台连接。

泛化协议SDK Demo中,设备证书存放于配置文件中。更多信息,请参见基础用法。在实际业务环境中,如果接入的设备数量大,则不推荐该方法。

获取子设备证书

如何使设备上线?

当设备连接到您的服务器后,需调用泛化协议SDK的API doOnline(),通知物联网平台设备已上线。

如何使设备离线?

当设备连接到您的服务器后,需调用泛化协议SDK的API doOffline(),通知物联网平台设备已离线。