精品久久看,欧美成人久久一级c片免费,日本加勒比在线精品视频,国产一区二区三区免费大片天美,国产成人精品999在线,97理论三级九七午夜在线观看

當(dāng)前位置: 首頁(yè)IT技術(shù) → Android PUSH開源方案解析

Android PUSH開源方案解析

更多
microsoft Yahei', Simsun; font-size: 14px; line-height: 21px; ">在 Android 上,因?yàn)?Google 自己實(shí)現(xiàn)的 Android 標(biāo)配的 GCM (Google Cloud Messaging,原來(lái)叫 C2DM) 在國(guó)內(nèi)基本不可用,所以,對(duì)于開發(fā)者來(lái)說(shuō),如果需要 Push功能,怎么樣選擇成為了一個(gè)問題。

到目前為止,國(guó)內(nèi)尚沒有完全向開發(fā)者免費(fèi)、開放的 Push 服務(wù)可用。國(guó)外有幾家第三方推送服務(wù),但一般都要收費(fèi)。所以一般來(lái)說(shuō),國(guó)內(nèi)的開發(fā)者不得不考慮自己來(lái)搭建 Push服務(wù)。
自己構(gòu)建 Push服務(wù)時(shí),一個(gè)比較自然的選擇就是,基于開源的現(xiàn)在方案來(lái)做。
使用 Google或者百度搜索 “Android Push 推送”等關(guān)鍵詞,表明已經(jīng)有不少人研究過。排在前邊的是這樣幾篇文章:
  • Android實(shí)現(xiàn)推送方式解決方案
  • 用androidpn來(lái)實(shí)現(xiàn)推送
  • Android上實(shí)現(xiàn)Push
  • Android Push Notification實(shí)現(xiàn)信息推送使用
上面文章提及的方案里,基本上都提及了一個(gè)開源的 Android Push實(shí)現(xiàn): androidpn。
androidpn 它本質(zhì)上服務(wù)器端基于 Openfire,客戶端基于 asmack,這二者都最 XMPP  IM 開源實(shí)現(xiàn)里的二個(gè)基本組件,應(yīng)該說(shuō) androidpn 只是把二者更多地結(jié)合起來(lái)用于做 Push的場(chǎng)景。

筆者做過聊天App,愿意在這里,把基于 XMPP開源系統(tǒng)做 IM 的實(shí)踐經(jīng)驗(yàn)分享給大家。
我們做聊天類App,比較自然地,剛開始時(shí)也是從研究開源的 XMPP IM 系統(tǒng)入手。
先說(shuō)服務(wù)器端選擇。Openfire 是一個(gè) XMPP  最古老的開源 IM Server,幾乎所有做 IM 的都應(yīng)該有研究過。但是,它也是最不合適運(yùn)用到生產(chǎn)的 IM Server,因?yàn)椋簡(jiǎn)螜C(jī)并發(fā)很有限,集群方案不成熟,代碼古老而缺乏及時(shí)更新。舉個(gè)具體的例子:Openfire 的集群組件叫 Connection Manager,但是,你在 Openfire官方網(wǎng)站可以看到,最近一個(gè)版本是 2009 年 2 月份發(fā)布的?梢姡 Openfire 實(shí)現(xiàn)的 androidpn 的根基是不夠穩(wěn)的。

更新:與一個(gè)基于 Openfire 做聊天App的朋友交流,他們的用戶量比較大,有多個(gè) Openfire 節(jié)點(diǎn)做集群。他們對(duì) Openfire 做了很多改造,比如 XMPP 協(xié)議交互復(fù)雜,要簡(jiǎn)化;XMPP 協(xié)議文本臃腫,則轉(zhuǎn)換為二進(jìn)制。集群方面,則完全是自己重新開發(fā)的。他們最多單點(diǎn)負(fù)載 30 萬(wàn)用戶。
還有另外二個(gè)其實(shí)相對(duì)好一點(diǎn)的選擇: ejabberdtigase。ejabberd 是用 Erlang語(yǔ)言實(shí)現(xiàn)的,懂 Erlang 的用戶很少,所以一般不會(huì)選。我們當(dāng)時(shí)初步的聊天服務(wù)器端選擇是 tigase (Java實(shí)現(xiàn)的)。
tigase 作者維護(hù)很活躍,集群測(cè)試結(jié)果能夠支撐比較大的容量,這是吸引我們的地方。但經(jīng)過實(shí)際生產(chǎn)運(yùn)營(yíng)情況來(lái)看,由于其集群方案實(shí)現(xiàn)的復(fù)雜性,以及單節(jié)點(diǎn)容量的有限,我們對(duì)支撐到 50 萬(wàn)用戶在集群節(jié)點(diǎn)上沒有信心,所以在到達(dá) 50 萬(wàn)用戶之前,趕快自己開發(fā)了替代方案。
再來(lái)說(shuō) XMPP 協(xié)議與客戶端的問題:對(duì)于移動(dòng)客戶端來(lái)說(shuō),原始的 XMPP 有些復(fù)雜而且流量消耗大。XMPP 本質(zhì)上協(xié)議體都在字符串的 xml 結(jié)構(gòu)上,每個(gè)協(xié)議都量一堆的字符串,xml里還有很多無(wú)意義的結(jié)構(gòu)。另外,XMPP為了其靈活性,就登錄這個(gè)事情都需要有 N 個(gè)來(lái)回。對(duì)于手機(jī)客戶端很在乎流量與電量來(lái)說(shuō),XMPP 比較笨重。
我們的作法是:協(xié)議格式上改為二進(jìn)制,協(xié)議內(nèi)容上簡(jiǎn)化交互,但保留對(duì)原始  XMPP的兼容。

androidpn 是開源的 Push 實(shí)現(xiàn),是基于 XMPP 開源組件集成的,它沒有為手機(jī)應(yīng)用場(chǎng)景做必要的優(yōu)化。另外,XMPP  本質(zhì)上雙向 IM 協(xié)議,而直接基于 XMPP 來(lái)實(shí)現(xiàn) Push 功能,也是沒有特別地為  Push 的特點(diǎn)優(yōu)化的,比如客戶端網(wǎng)絡(luò)連接的策略等。

總結(jié)一下以 androidpn 為典型的開源 Android Push 方案會(huì)存在的問題:
1)容量大了開源服務(wù)器實(shí)現(xiàn)頂不住,還是需要自己去改進(jìn)開源實(shí)現(xiàn),或者完全重新用新方案,開發(fā)投入與高成本是不可避免的。
2)協(xié)議與實(shí)現(xiàn)上如流量消耗、網(wǎng)絡(luò)連接策略等,不是專門為移動(dòng) Push 優(yōu)化過的,是不經(jīng)濟(jì)的。
基于我們團(tuán)隊(duì)基于 XMPP開源系統(tǒng)實(shí)現(xiàn)聊天App的實(shí)踐經(jīng)驗(yàn),我們得出的結(jié)論是,在移動(dòng)端的 IM場(chǎng)景里,開源方案不是個(gè)可用好用的方案。后來(lái)我們自己完全重新架構(gòu)了整套系統(tǒng)。之后,正是基于這套全新架構(gòu)的 IM 系統(tǒng),演變出來(lái)了極光推送。
極光推送專門為移動(dòng)場(chǎng)景下的實(shí)時(shí) Push 來(lái)研發(fā),我們想要去解決國(guó)內(nèi) Android 開發(fā)者沒有可用、好用的 Push方案的問題,是免費(fèi)的,完全向普通開發(fā)者開放。如果你也有這個(gè) Android Push 的需求,不妨到極光推送官方網(wǎng)站進(jìn)一步地了解。
熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)
主站蜘蛛池模板: 日韩欧美在线视频观看 | 精品三区 | 黄色在线视频播放 | 精品无人区一区二区三 | 日韩一级在线观看 | 丁香六月伊人 | 免费av一区二区三区 | 五月天激情视频 | 99久久精品国产一区二区 | 免费网站在线观看国产v片 免费网站视频 | 国产高清视频免费观看 | 久久精品久久久 | 亚洲国产综合视频 | 日韩a一级欧美一级在线播放 | 四虎网站网址 | 亚洲永久在线观看 | 欧美老女人逼 | 五十路一区二区三区视频 | 国产在线中文字幕 | 9797在线| 精品视频在线一区 | 国产99精品 | 天天干夜夜爽 | 99免费视频观看 | 亚洲精品在线不卡 | 久久婷婷午色综合夜啪 | 久久精品国产在热久久2019 | 亚洲永久精品一区二区三区 | 久久天天躁狠狠躁夜夜爽蜜月 | 看免费一级毛片 | 青草国产在线观看 | аⅴ资源中文在线天堂 | 国产精品久久国产精品99盘 | 国产日韩欧美亚洲精品95 | 高清免费毛片 | 国产成人综合网在线播放 | 久久久青草 | 日韩欧美高清在线 | 男人的天堂日本 | 五月天婷婷网址 | 欧美成人小视频 |