Demo : Default Monitor
寫在前頭
你會從這篇文章看到:
- 與Channel API沾上一點點邊的小小Demo。
- 在下很期待新一波家電革命所帶來的便利。
卻無法在這裡得到:
- 學習Channel API相關內容。
Google App Engine發佈Version 1.4.0,提供Channel API可以輕易實作Compet概念。剛好逛到PubNub網站 ,才突發奇也想要利用Channel API弄個模擬Monitor功能,雖然~無法像PubNub可以在任何設備上,雙向傳送Message,不過~可以模擬監控各設備,即時回報目前使用狀態。
Client 和Server
- Javascript Client
主要負責三件事情,如下:
- 連接從Server取得該Channel的unique token。
- Listening該Channel的所有更新訊息。
- 丟更新訊息給Server,就可以傳遞訊息給該Channel的其他Client。
- The Server
Server則要負責,如下:
- 建立unique channel給個別的Client使用。
- 建立並傳送unique token給每個 Client,讓它們能connecting和listening該Channel。
- 接收從Client端POST過來的更新訊息。
- 透過Channel發送更新訊息至Client。
概述如何模擬
- Click Start Monitor Button
按下Start Monitor的Button後,就會在Client與Server之間,建立溝通管道,可以使用Chrome Browser,打開「開發人員工具」功能,從Resources->XHR看到互動情形,下圖是從Channel API截過來,說明Chanel建立過程。
- Choice Target Options & Click Run Button
這邊就開始啟動設備,其運作過程是如下:
- 先随機選擇執行項目(會看到很不用心的內容)。
- 利用Channel API丟出正在跑什麼項目給Client知道,這時Monitor的Message Log就會看到從Server傳過來的訊息。
- 接著裝置會閒置一段時間(模擬裝置執行所需時間)。
- 等結束後,再新增一個Tasks到Queue,使裝置能繼續運轉。
- 依序重覆循環共計10次,整個模擬就結束。
結語
為了玩玩看Channel API,就寫了一個非常簡單Monitor家電的Web App,其重點只是單向訊息傳遞,並未真正結合家電設備,若是能結合家電設備,會讓Demo更生動有趣。觀察自身四周,可以看到家電與生活息息相關,已經密不可分,人類對於家電的需求,也是不斷地推陳出新,再加上最近極力倡導綠色能源等概念,使家電品質能符合效能最大、最小汙染等環保理念。當然~也十分佩服Google開發Google PowerMeter能即時掌握家電使用情況及安全上考量。若是能成功普遍使用,相信會是新一波家電革命,大大提高生活品質。
沒有留言:
張貼留言