掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
| 在 Android 上,因為 Google 自己實現(xiàn)的 Android 標(biāo)配的 GCM (Google Cloud Messaging,原來叫 C2DM) 在國內(nèi)基本不可用,所以,對于開發(fā)者來說,如果需要 Push功能,怎么樣選擇成為了一個問題。 到目前為止,國內(nèi)尚沒有完全向開發(fā)者免費、開放的 Push 服務(wù)可用。國外有幾家第三方推送服務(wù),但一般都要收費。所以一般來說,國內(nèi)的開發(fā)者不得不考慮自己來搭建 Push服務(wù)。 自己構(gòu)建 Push服務(wù)時,一個比較自然的選擇就是,基于開源的現(xiàn)在方案來做。
使用 Google或者百度搜索 “Android Push 推送”等關(guān)鍵詞,表明已經(jīng)有不少人研究過。排在前邊的是這樣幾篇文章:
上面文章提及的方案里,基本上都提及了一個開源的 Android Push實現(xiàn): androidpn。 先說服務(wù)器端選擇。Openfire 是一個 XMPP 最古老的開源 IM Server,幾乎所有做 IM 的都應(yīng)該有研究過。但是,它也是最不合適運用到生產(chǎn)的 IM Server,因為:單機并發(fā)很有限,集群方案不成熟,代碼古老而缺乏及時更新。舉個具體的例子:Openfire 的集群組件叫 Connection Manager,但是,你在 Openfire官方網(wǎng)站可以看到,最近一個版本是 2009 年 2 月份發(fā)布的??梢?,基于Openfire 實現(xiàn)的 androidpn 的根基是不夠穩(wěn)的。 更新:與一個基于 Openfire 做聊天App的朋友交流,他們的用戶量比較大,有多個 Openfire 節(jié)點做集群。他們對 Openfire 做了很多改造,比如 XMPP 協(xié)議交互復(fù)雜,要簡化;XMPP 協(xié)議文本臃腫,則轉(zhuǎn)換為二進(jìn)制。集群方面,則完全是自己重新開發(fā)的。他們最多單點負(fù)載 30 萬用戶。 總結(jié)一下以 androidpn 為典型的開源 Android Push 方案會存在的問題: 基于我們團(tuán)隊基于 XMPP開源系統(tǒng)實現(xiàn)聊天App的實踐經(jīng)驗,我們得出的結(jié)論是,在移動端的 IM場景里,開源方案不是個可用好用的方案。后來我們自己完全重新架構(gòu)了整套系統(tǒng)。之后,正是基于這套全新架構(gòu)的 IM 系統(tǒng),演變出來了極光推送。 |

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流