簡介
android push 是安卓的一種訊息推送機制。開發者在開發的時候會有這樣的幾種實現方案:
安卓關於訊息推送的相關方案介紹
------我們國內自己的技術實現
前些時間公司有個項目用到了android push功能,於是在google中狂搜,
看到好多網友的介紹,我總結了一下幾種方案,但其中有一種是我用著比較好的,簡單,易用還免費。
以下是這幾種方案的介紹:
方案一:
Google官方的:
通過對比研究發現C2DM機制存在以下缺點:
1、C2DM內置於Android的2.2系統上,無法兼容老的1.6到2.1系統;
2、必須運行android,並且安裝Market,至少有一個登錄的google賬號。
3、C2DM需要依賴於Google官方提供的C2DM伺服器,由於國內的網路環境,這個服務經常不可用,是訊息阻塞,不能對送到終端。
方案二:
利用MQTT協定,broker做代理伺服器,但是隨著用戶的增多這個方案會有問題,因為broker的連線數有上限,到了一定程度後就無法連線了,這也就導致訊息很難傳送出去。
總之,連線數量有限制。
方案三:
基於XMPP協定,很多人都建議使用這個,谷歌官方的C2DM也是基於XMPP研發的,使用這個方案不會依賴android系統,也不依賴於谷歌伺服器。
方案四:
最近新出的一種是APNS,這個也不需要自己架設伺服器,很簡單,自己不用開發服務端,但要收費的,一年100人民幣。
主要有以下特點:
· 快速集成:提供一種比C2DM更加快捷的使用方式,避免各種限制.
· 無需架設伺服器:通過使用"雲服務",減少額外伺服器負擔.
· 可以同時推送訊息到網站頁面,android 手機
· 耗電少,占用流量少.
終極方案:
下面的一種方案是我自己發現的一種方案感覺比較好用,所以推薦給大家。(android-push終極方案)
先介紹特點:
3、沒有C2DM中的版本限制和必須用gmail綁定
4、雲服務,不用假設自己的伺服器
5、用戶track
6、簡單高效,並且省電
Android 推送
方案1、使用C2DM服務(Google Cloud Messaging)
簡介:Google推出的雲訊息服務,即第二代的G2DM。
優點:Google提供的服務、原生、簡單,無需實現和部署服務端。
缺點:Android版本限制(必須大於2.2版本),該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。
方案2、使用XMPP協定(Openfire + Spark + Smack)
簡介:基於XML協定的通訊協定,前身是Jabber,目前已由IETF國際標準化組織完成了標準化工作。
優點:協定成熟、強大、可擴展性強、目前主要套用於許多聊天系統中,且已有開源的Java版的開發實例androidpn。
缺點:協定較複雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。
方案3、使用MQTT協定
簡介:輕量級的、基於代理的“發布/訂閱”模式的訊息傳輸協定。
優點:協定簡潔、小巧、可擴展性強、省流量、省電,目前已經套用到企業領域(),且已有C++版的服務端組件rsmb。
缺點:不夠成熟、實現較複雜、服務端組件rsmb不開源,部署硬體成本較高。
方案4、使用第三方推送服務
簡介:通過嵌入SDK使用第三方提供的推送服務,目前主流的有百度雲推送,極光推送,個推,PUBNUB,聚能推等
優點:穩定,成熟,節省開發和探索時間,相對自己開發成本低,推送管理界面及統計程式完善。
缺點:有程式嵌入顧慮
IOS推送實現方式
推薦使用APNS服務,穩定,方便,美中不足是沒有推送到達的回執和統計,不方便產品運營。如對此方面有需求可以使用百度雲推送、極光推送、個推等第三方推送服務解決
Win-Phone
使用MPNS(Microsoft 推送通知服務),相應速度不錯,但推送不帶狀態,很多功能無法實現。