阿里雲-物聯網IoT對接過程

1. 使用背景

最近公司需要開發小程序端外網控制路由器底層運行。
考慮到需要快速上線,還有安全性、穩定性。最終放棄自建mqtt服務器,決定採用阿里雲的物聯網方案。

2.阿里雲的對接過程

(1)由於路由器端只能用c sdk進行編譯執行。
接入端採用 c sdk。 阿里的c sdk是用cmake方式進行編譯的,我把它改爲了make 方式進行編譯,方便交叉編譯。並且已經把多線程、rrpc、普通方式的訂閱、推送合併到一起。 項目地址 爲 https://github.com/Lvlynn/aliyun_iot_sdk
(2)服務器端的訂閱。
最開始採用【規則引擎】把數據流轉到消息隊列,這種方式要實現一對一通信需要,每接入一個設備生成一個主題和隊列,然後通過消息隊列SDK提取對應數據,開發週期過長。
最終採用 在自建的服務器上接收消息。
先開啓服務器訂閱選項;
在這裏插入圖片描述
然後接入mvn java sdk。只需安裝java 和mvn 。
然後執行
mvn compile #編譯
mvn package #打包
mvn exec:java -Dexec.mainClass=“com.aliyun.iot.demo.H2Client” #運行

這個sdk使用的java方案,壓力測試過程中發現,內存會逐漸增加,所以建議
在 /etc/profile 中增加 export MAVEN_OPTS="-Xmx512m -Xms512m -Xss256k " java 程序的參數限制。
(3)這邊由於是java方案,我並不是瞭解,決定通過http請求的方式接入到nginx php進行處理。
(4)服務器端調用sdk 來創建設備、
分組、消息下發等sdk(這裏不得不吐槽一下阿里的sdk,demo示例過少,需要自己開發,增加了一些開發時間)。
(5)小程序調用php封裝的API。

小結

設備端接入還是蠻費時間的,編譯過程中遇到不少的小毛病,阿里sdk並沒有 指定gcc版本。最終發現gcc 4.4版本編譯不過,gcc 4.8版本可以編譯成功。
交叉編譯過於複雜 ,無法一鍵make 生成demo程序。
最後還發現demo中的spnrintf 截取msg_id在服務器推送的消息長度過長時就會提取失敗。
總而言之,接入第三方產品總是坎坷曲折的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章