【 玩轉 LeanCloud 】開發者經驗分享:
作者:謝子超
720技術負責人,從業十余年,一直負責軟件開發工作。
我們的產品是與監控和改善室內空氣質量相關的智能硬件,我們使用 LeanCloud 平臺已經有 2 年多了,借此機會與其他從事智能硬件生產及應用解決方案的團隊分享下我們的經驗。
我們的主要硬件產品分為兩部分:環境監測設備(環境寶)和環境治理設備( 720 全智能凈化器系列)。環境監測設備的主要功能是通過 7x24 小時不間斷地監測 8 項室內環境數據指標(包括 PM2.5 、PM10 、甲醛、TVOC 化學污染物、溫度、濕度、噪聲、等效二氧化碳),然后將采集到的數據通過 Wi-Fi 上傳至云端,通過云端計算并下發決策指令,同時用戶也可以隨時通過手機了解家中的空氣質量;環境治理設備凈化器通過 Wi-Fi 聯網后,與環境寶實現智能聯動。凈化器從云端接受控制指令來完成風量調節和功能開關等操作。兩個設備組合使用即可實現自動化的空氣質量控制。
節約創業成本
技術選型方面,因為是創業公司,所以我們早期對成本方面非常敏感。考慮到自行搭建建服務端要付出的成本和工作量(從服務器租賃、到工程師團隊組建,到日常運維),我們更傾向把資源放在產品功能研發和邏輯實現上,而不必為這些離最終用戶價值比較遠的方面花太多時間和精力,所以我們決定找一些比較專業的后端云服務來滿足我們對基礎設施架構的需求。
當初了解過 Parse,但是由于國內網絡狀況對國外產品并不友好,所以沒敢去嘗試;后來遇到了 LeanCloud ,它是在國內,而且據我們了解它也是這行里做得最早的一家,于是就在一個產品上試用,整個過程進行得非常順利,包括后續的使用感覺也很好,所以到現在基本上所有產品的服務端都在 LeanCloud 上了。
云引擎實現設備總控
技術實現方面,因為智能硬件很多時候是需要長連接的,我們使用的是 MQTT 協議,而 LeanCloud 對于這類協議沒有特殊支持,所以我們使用一臺自有服務器作為 MQTT 的服務端,再配合上 LeanCloud 的云引擎,最終也能較好地滿足我們的需求。
數據檢測設備需要定時采集數據并上報。在開發過程中我們的 Wi-Fi 芯片對 MQTT 的支持有一些問題,所以我們將 LeanCloud 云引擎作為 WebServer 并編寫了自定義的 API,讓數據檢測設備通過 HTTP 請求調用這些 API 來完成數據上報。
智能控制設備通過長連接訪問到 MQTT 服務器來實時地接收控制指令,調整自己的運行狀態,此時云引擎就充當起了一個總控臺的角色,它會對收集上來的數據進行一下判斷,然后向 MQTT 服務器發送控制指令,達到控制設備的目的。順便要提一下,云引擎使用起來還是挺方便的。我們不僅能夠直觀地從控制臺看到各類資源的運轉狀況,還能通過命令行工具快速地部署和回滾代碼,對于常見的服務端操作這些都是非常好的補充。
云緩存為存儲和查詢提速
在數據保存和查詢上,我們使用了 LeanCloud 的云緩存。因為很多用戶都會有按照時間范圍(比如今天)來查詢空氣質量的習慣,所以如果在保存數據時設置好合適的 key 結構,我們就可以很方便地獲取到需要的數據,而且還有非常棒的讀寫效率。
商用版體驗更棒
技術方面,LeanCloud 的功能和 API 設計都做得比較好,而且它不會像其他公司那樣,為了擴大市場宣傳而催生出很多新的但又不穩定不好用的功能。服務穩定性方面,特別是在商用版推出之后,商用版有了專屬的后端資源,跟免費版的共享資源隔離開來,我們覺得服務穩定性就更有保障了,當然除此之外,商用版在其他方面也比開發版有更多的優勢可以利用。
LeanCloud 技術支持也非常專業。因為他們會讓開發 SDK 的一線工程師來直接回答我們用戶的提問,所以這樣更容易定位問題,給用戶更準確的解答,這樣用戶用起來也更加放心吧。只不過 LeanCloud 市場宣傳可能做得比較保守,也許是公司風格太「技術化」了一點。