android上訊息推送的實現

2021-06-08 15:10:42 字數 1609 閱讀 2767

ios上面有了很好的推送機制,android上本來也有個類似iphone上的apns,原名android cloud to device messaging,小名c2dm,(c2dm) 作為 android 2.2 的一部分已經發布了,c2dm 允許第三方開發者開發相關的應用來推送1024位元組到使用者的手機上,這相對於ios的256位元組來說,簡直爽歪歪了。但是悲劇發生了,c2dm這項雲推機制的伺服器假設在國外,對我們來說幾乎不可用。

方案一:

google官方的:

通過對比研究發現c2dm機制存在以下缺點:

1、c2dm內置於android的2.2系統上,無法相容老的1.6到2.1系統;

2、必須執行android,並且安裝market,至少有乙個登入的google賬號。

3、c2dm需要依賴於google官方提供的c2dm伺服器,由於國內的網路環境,這個服務經常不可用,是訊息阻塞,不能對送到終端。

跟大家說聲sorry,很久沒關注這個了,今天特來編輯一下文章。googel在今年6月26日c2dm已被正式的gcm取代而不再使用。關於gcm的**,可以參考((

方案二:

利用mqtt協議,broker做**伺服器,但是隨著使用者的增多這個方案會有問題,因為broker的連線數有上限,到了一定程度後就無法連線了,這也就導致訊息很難傳送

總之,連線數量有限制。

基於xmpp協議,很多人都建議使用這個,谷歌官方的c2dm也是基於xmpp研發的,使用這個方案不會依賴android系統,也不依賴於谷歌伺服器。

方案四:(

最近新出的一種是apns,這個也不需要自己架設伺服器,很簡單,自己不用開發服務端,但要收費的,一年199人民幣。幫他宣傳可以得到3個月的延長使用。

主要有以下特點:

· 快速整合:提供一種比c2dm更加快捷的使用方式,避免各種限制.

· 無需架設伺服器:通過使用"雲服務",減少額外伺服器負擔.

· 可以同時推送訊息到**頁面,android 手機

· 耗電少,占用流量少

方案五:(

先介紹特點:

1、免費

2、易整合

3、沒有c2dm中的版本限制和必須用gmail繫結

4、雲服務,不用假設自己的伺服器

5、使用者track

6、簡單高效,並且省電

吐槽:第四種方法我試用了一段時間,後來發現在斷網重新連線的時候,服務沒有啟動,不太穩定,真正等軟體商用的時候就來不及修改了,特別是對實時性要求較高的軟體。

第五種方法呢,看著就很專業了,在美國舊金山和北京蘇州街都有研發點。嵌入**也很easy,有demo很文件。我們點方案五後面的**進去看看就一目了然了。只要新增乙個應用的包名,換取key和sectret,還有,通過**抓取手機終端的imei號。。有了這三個引數之後,推送起來輕鬆加愉快!

後來用了一段時間,發現只要是第三方公司開發的apns都存在乙個問題,他們全部用了乙個三方包,所以在網路切換到時候,服務就斷開了,再推送訊息,已經下不來了,多多少少有些不穩定。這個問題,我還可以打**問了他們開發的技術人員。俺們終日盼著google能像蘋果那樣,放個apns的伺服器,造福全球android使用者啊。此問題一日不解決,我們一日受罪啊。現在我們公司做的推送,直接用tcp做長連線,我和我哥們一起幹的,老實說,維持這個鏈結真的很費神。

Android訊息推送原理

出處 產品的角度 功能需要,比如說資訊類產品的新聞推送 工具類產品的公告推送等等 運營的角度 活動運營需要,比如說電商類產品的 活動 召回使用者 提高活躍度等等 作為開發者,不要有需求就接,應該多思考 多理解使用者 功能的使用場景,有助於我們更好地去選擇合適的開發方式 作業系統有自身的訊息推送功能 ...

android訊息推送 mqtt協議

對與訊息推送是什麼個概念,在此就不贅述啦。google自帶的c2md服務,可以幫助我們實現該功能,可以該伺服器在國外,所以鑑於網速等各種條件限制,我們也沒法實現。為解決該問題,在讀了大量的部落格等質料之後,終於見到啦陽光。第三個是由ibm提供的mqtt協議的實現,就相當於乙個 開啟1883埠,在se...

android整合fcm訊息推送

2.新增依賴 2.2新增依賴 fcm訊息通知 implementation com.google.firebase firebase messaging 17.3.4 implementation com.google.firebase firebase core 16.0.4 2.3在根目錄的bu...