這兩天閱讀了下google iot core的客戶端程序啰劲,代碼量很小,就是一個mqtt的client進行了一次封裝,但是里面有兩個點可以給大家分享下荠割,源碼地址https://github.com/vaelen/iot棵帽。
首先說下代碼目錄熄求,核心代碼我認為三個文件,iot.go岖寞、thing.go抡四、paho\paho.go。文件里的內容也很簡單仗谆,這里不一一解釋了指巡,重點是有一個設備的struct,
type ID struct {
????ProjectID string
? ? Location string
? ? Registry string
? ? DeviceID string
}
其中projectID對應google平臺的項目id隶垮,deviceID是設備的唯一標識藻雪。
該源碼里可以說道說道的核心點是里面用到的clock包和mock.go兩個點,首先clock包github.com/benbjohnson/clock狸吞,對time包進行了封裝勉耀,增加了對時間打樁指煎,我們可以通過clock里提供的add方法修改時間以觸發(fā)mock的timer定時器,非常有意思的一個包便斥,大家可以嘗試下至壤。
另外一個點mock.go,該文件雖然我沒有把它列到核心的文件里,但是為我們今后在開發(fā)有個很好的提醒枢纠,通過文件名字可以得知像街,是一個打樁文件,查看文件很容易get到他是一個mqtt client的mock晋渺,在沒有mqtt server或者不去與server建聯(lián)的前提下镰绎,也可以完成client業(yè)務流程的測試。