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

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

采用XMPP協議實現Android推送

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

在 開發Android和iPhone應用程序時,我們往往需要從服務器不定的向手機客戶端即時推送各種通知消息,iPhone上已經有了比較簡單的和完美的 推送通知解決方案,可在Android平臺上實現起來卻相對比較麻煩,最近就對Android的推送通知服務進行初步的研究。


在Android手機平臺上,Google提供了C2DM(Cloudto Device Messaging)服務,起初我就是準備采用這個服務來實現Android手機上的推送功能。


Android Cloud to Device Messaging (C2DM)是一個用來幫助開發者從服務器向Android應用程序發送數據的服務。該服務提供了一個簡單的、輕量級的機制,允許服務器可以通知移動應用 程序直接與服務器進行通信,以便于從服務器獲取應用程序更新和用戶數據。C2DM服務負責處理諸如消息排隊等事務并向運行于目標設備上的應用程序分發這些 消息。


但這個服務存在很大的問題:


1、C2DM內置于Android的2.2系統上,無法兼容老的1.5到2.1系統;


2、C2DM需要依賴于Google官方提供的C2DM服務器,由于國內的網絡環境,這個服務經常不可用,如果想要很好的使用,我們的App Server必須也在國外。這個可能不是每個開發者或公司能實現的。

所以最終我放棄了這個方案。采用XMPP協議實現Android推送,事實上Google官方的C2DM服務器底層也是采用XMPP協議進行的封裝。

XMPP(可擴展通訊和表示協議)是基于可擴展標記語言(XML)的協議,它用于即時消息(IM)以及在線探測。這個協議可能最終允許因特網用戶向因特網上的其他任何人發送即時消息。


androidpn是一個基于XMPP協議的java開源Android push notification實現。它包含了完整的客戶端和服務器端。



 


androidpn的實現示意圖如下:



 


androidpn客戶端需要用到一個基于java的開源XMPP協議包asmack,這個包同樣也是基于openfire下的另外一個開源項目smack, 不過我們不需要自己編譯,可以直接把androidpn客戶端里面的asmack.jar拿過來用。客戶端利用asmack中提供的 XMPPConnection類與服務器建立持久連接,并通過該連接進行用戶注冊和登錄認證,同樣也是通過這條連接,接收服務器發送的通知。


androidpn 服務器端也是java語言實現的,基于openfire開源工程,它的Web部分采用的是spring框架。Androidpn服務器包含兩個部分,一個 是偵聽在5222端口上的XMPP服務,負責與客戶端的XMPPConnection類進行通信,作用是用戶注冊和身份認證,并發送推送通知消息。另外一 部分是Web服務器,采用一個輕量級的HTTP服務器,負責接收用戶的Web請求。服務器架構如下:



最上層包含四個組成 部分,分別是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager負責管理客戶端與服務器之間的會話,Auth Manager負責客戶端用戶認證管理,Presence Manager負責管理客戶端用戶的登錄狀態,NotificationManager負責實現服務器向客戶端推送消息功能。


服務器端界面如下,分別對應了上述的幾個功能模塊:



 



 



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



點擊Submit發送以后,可以在Android手機端看到接收的消息如下



點擊OK按鈕可以進行相應的URI跳轉。


該解決方案的最大優勢就是簡單,并且避免了C2DM的兩個問題。利用XMPP協議我們還可以進一步的對協議進行擴展,實現更完善的功能。


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