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