本文介紹泛化協議設備接入過程中,可能遇到的問題及解決方法。

背景信息

為了實現設備的遠程管理和數據采集,設備已連接您自己的云端服務器,不便于修改設備的固件讓其接入阿里云物聯網平臺。但您又希望復用物聯網平臺的功能,將設備納入基于物聯網平臺的解決方案,此時,您可以使用泛化協議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(),通知物聯網平臺設備已離線。