經常有朋友困擾於Android上面實現推送的技術,希望知道各種方案的優缺點、效能、開發難度等,於是特意寫了這篇文章。
Android上實現推送的技術方案大致有如下幾種:
方案一:
Google官方的服務
但,通過對比研究發現C2DM機制存在以下缺點:
1)GCM要求Android系統必須是2.2以上的版本,所以對於不少2.2以前的系統沒法推送。
2)國內服務不穩定。而且不少國內的終端廠商紛紛把Google的服務去掉,替換上自己的。
3)需要使用者綁定Google帳號,但不少國內使用者沒有Google帳號。
方案二:
利用MQTT協議,broker做Proxy 伺服器,但是隨著使用者的增多這個方案會有問題,因為broker的串連數有上限,到了一定程度後就無法串連了,這也就導致訊息很難發送出去。
總之,串連數量有限制。
方案三:
基於XMPP協議,很多人都建議使用這個,Google官方的C2DM也是基於XMPP研發的,使用這個方案不會依賴android系統,也不依賴於Google伺服器。
XMPP協議比較費電費流量,對當前智能機的消耗太大。
在窄帶網路和不穩定的手機)網路都不是最優的選擇。
方案四:
最近新出的一種是APNS,這個也不需要自己架設伺服器可以查看http://www.push-notification.mobi/),很簡單,自己不用開發服務端。不過很少有人去用,不是很穩定。
主要有以下特點:
快速整合:提供一種比C2DM更加快捷的使用方式,避免各種限制.
無需架設伺服器:通過使用"雲端服務",減少額外伺服器負擔.
可以同時推送訊息到網站頁面,android 手機
耗電少,佔用流量少.
第三方服務:
目前也有不少第三方提供了推送服務,由於接入簡單、服務比較專業可靠、還提供報表等,不少國內開發人員和企業都採用這種方案。比如國外的parse、 pubnub,國內的個推,都是這類。36kr前段時間有報道,新浪微博就是用的一家叫“個推”的第三方服務有興趣的朋友可以前往查 看 http://www.igetuicom)
特點:
方便,易整合
沒有C2DM中的版本限制和必須用gmail綁定
雲端服務,不用架設自己的伺服器
系統穩定、專業,能夠承受高並發支援
簡單高效,並且省電