狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

采用XMPP協(xié)議實(shí)現(xiàn)Android推送

admin
2013年2月25日 23:59 本文熱度 5964

在 開發(fā)Android和iPhone應(yīng)用程序時(shí),我們往往需要從服務(wù)器不定的向手機(jī)客戶端即時(shí)推送各種通知消息,iPhone上已經(jīng)有了比較簡(jiǎn)單的和完美的 推送通知解決方案,可在Android平臺(tái)上實(shí)現(xiàn)起來(lái)卻相對(duì)比較麻煩,最近就對(duì)Android的推送通知服務(wù)進(jìn)行初步的研究。


在Android手機(jī)平臺(tái)上,Google提供了C2DM(Cloudto Device Messaging)服務(wù),起初我就是準(zhǔn)備采用這個(gè)服務(wù)來(lái)實(shí)現(xiàn)Android手機(jī)上的推送功能。


Android Cloud to Device Messaging (C2DM)是一個(gè)用來(lái)幫助開發(fā)者從服務(wù)器向Android應(yīng)用程序發(fā)送數(shù)據(jù)的服務(wù)。該服務(wù)提供了一個(gè)簡(jiǎn)單的、輕量級(jí)的機(jī)制,允許服務(wù)器可以通知移動(dòng)應(yīng)用 程序直接與服務(wù)器進(jìn)行通信,以便于從服務(wù)器獲取應(yīng)用程序更新和用戶數(shù)據(jù)。C2DM服務(wù)負(fù)責(zé)處理諸如消息排隊(duì)等事務(wù)并向運(yùn)行于目標(biāo)設(shè)備上的應(yīng)用程序分發(fā)這些 消息。


但這個(gè)服務(wù)存在很大的問(wèn)題:


1、C2DM內(nèi)置于Android的2.2系統(tǒng)上,無(wú)法兼容老的1.5到2.1系統(tǒng);


2、C2DM需要依賴于Google官方提供的C2DM服務(wù)器,由于國(guó)內(nèi)的網(wǎng)絡(luò)環(huán)境,這個(gè)服務(wù)經(jīng)常不可用,如果想要很好的使用,我們的App Server必須也在國(guó)外。這個(gè)可能不是每個(gè)開發(fā)者或公司能實(shí)現(xiàn)的。

所以最終我放棄了這個(gè)方案。采用XMPP協(xié)議實(shí)現(xiàn)Android推送,事實(shí)上Google官方的C2DM服務(wù)器底層也是采用XMPP協(xié)議進(jìn)行的封裝。

XMPP(可擴(kuò)展通訊和表示協(xié)議)是基于可擴(kuò)展標(biāo)記語(yǔ)言(XML)的協(xié)議,它用于即時(shí)消息(IM)以及在線探測(cè)。這個(gè)協(xié)議可能最終允許因特網(wǎng)用戶向因特網(wǎng)上的其他任何人發(fā)送即時(shí)消息。


androidpn是一個(gè)基于XMPP協(xié)議的java開源Android push notification實(shí)現(xiàn)。它包含了完整的客戶端和服務(wù)器端。



 


androidpn的實(shí)現(xiàn)示意圖如下:



 


androidpn客戶端需要用到一個(gè)基于java的開源XMPP協(xié)議包asmack,這個(gè)包同樣也是基于openfire下的另外一個(gè)開源項(xiàng)目smack, 不過(guò)我們不需要自己編譯,可以直接把a(bǔ)ndroidpn客戶端里面的asmack.jar拿過(guò)來(lái)用。客戶端利用asmack中提供的 XMPPConnection類與服務(wù)器建立持久連接,并通過(guò)該連接進(jìn)行用戶注冊(cè)和登錄認(rèn)證,同樣也是通過(guò)這條連接,接收服務(wù)器發(fā)送的通知。


androidpn 服務(wù)器端也是java語(yǔ)言實(shí)現(xiàn)的,基于openfire開源工程,它的Web部分采用的是spring框架。Androidpn服務(wù)器包含兩個(gè)部分,一個(gè) 是偵聽在5222端口上的XMPP服務(wù),負(fù)責(zé)與客戶端的XMPPConnection類進(jìn)行通信,作用是用戶注冊(cè)和身份認(rèn)證,并發(fā)送推送通知消息。另外一 部分是Web服務(wù)器,采用一個(gè)輕量級(jí)的HTTP服務(wù)器,負(fù)責(zé)接收用戶的Web請(qǐng)求。服務(wù)器架構(gòu)如下:



最上層包含四個(gè)組成 部分,分別是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager負(fù)責(zé)管理客戶端與服務(wù)器之間的會(huì)話,Auth Manager負(fù)責(zé)客戶端用戶認(rèn)證管理,Presence Manager負(fù)責(zé)管理客戶端用戶的登錄狀態(tài),NotificationManager負(fù)責(zé)實(shí)現(xiàn)服務(wù)器向客戶端推送消息功能。


服務(wù)器端界面如下,分別對(duì)應(yīng)了上述的幾個(gè)功能模塊:



 



 



 下載了客戶端代碼后需修改androidpn.properties文件中的xmppHost的地址,如下:



點(diǎn)擊Submit發(fā)送以后,可以在Android手機(jī)端看到接收的消息如下



點(diǎn)擊OK按鈕可以進(jìn)行相應(yīng)的URI跳轉(zhuǎn)。


該解決方案的最大優(yōu)勢(shì)就是簡(jiǎn)單,并且避免了C2DM的兩個(gè)問(wèn)題。利用XMPP協(xié)議我們還可以進(jìn)一步的對(duì)協(xié)議進(jìn)行擴(kuò)展,實(shí)現(xiàn)更完善的功能。


該文章在 2013/2/25 23:59:03 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved