999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android的消息推送的研究與實現

2018-06-07 08:58:16閆俊英李熙明曹錫貴
卷宗 2018年9期

閆俊英 李熙明 曹錫貴

摘 要:隨著移動互聯網的快速發展,消息推送在移動互聯網領域智能終端的應用越來越廣泛,成為智能終端產品實時發布信息的一種重要手段。本文主要研究了目前基于Android的消息推送的幾種解決方案,并選擇基于XMPP協議,實現了一個基于Android的消息推送系統。

關鍵詞:Android,消息推送,XMPP協議

1.引言

隨著移動互聯網的發展,智能手機和各種智能終端的用戶越來越多,移動互聯網已經成為人們獲取信息的一個最佳平臺。如何及時或定時地向用戶發送各種信息越來越成為目前研究的熱點,消息推送就被用在了傳送信息的各個領域。IOS平臺已經提供了官方的消息推送的解決方案[1],但是Android平臺的解決方案卻比較復雜。本文分析了Android平臺的消息推送的幾種不同的解決方案,最后基于XMPP協議實現了一個消息推送系統。

2.消息推送技術

消息推送技術主要有兩種方式[2]:一種是客戶端使用PULL的方式,就是隔一段時間就去服務器上獲取信息;另一種就是服務器使用PUSH的方式,當服務器端把最新的信息Push到客戶端上。

2.1 GCM云推送

Google Cloud Messaging for Android(簡稱GCM),是谷歌新推出的云推送消息服務,即第二代的C2DM。該服務可以將服務器端的消息發送給客戶端,簡單,無需實現和部署服務端。但是受到Android版本的限制,而且需要連接Google的服務器,因此該服務在國內還不夠穩定。另外,對于不同的硬件廠商平臺,他們可能把Google所提供的這種服務去掉。

2.2 MQTT協議

MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個輕量級的消息發布/訂閱協議,是一種實現基于手機客戶端的消息推送服務器的理想解決方案。該協議支持所有平臺,幾乎可以把所有聯網物品和外部連接起來,被用來當做傳感器和致動器的通信協議。該協議的優點是:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域。但是目前還不夠成熟、實現較復雜、服務端組件RSMB不開源,部署硬件成本較高。

2.3 XMPP協議

XMPP協議是一種基于標準通用標記語言的子集XML的協議,它繼承了在XML環境中靈活的發展性。因此,基于XMPP的應用具有超強的可擴展性。該協議的前身是Jabber,目前已由IETF國際標準化組織完成了標準化工作。XMPP協議目前已經比較成熟,可擴展性強,協議是自由、源碼開放的,這些都可以為開發人員直接使用,有利于減小項目的開發難度。

2.4 第三方平臺

許多互聯網公司看到了移動終端的消息推送的應用前景,推出了很多種成熟的第三方推送解決方案。對于一般用戶來說,采用第三方解決方案,應用成本低,操作簡單,第三方所提供的技術比較可靠。但是第三方解決方案,都需要連接第三方的服務器,因此數據的安全性方面可能會受到一定影響。另外,目前對于一些入門級別的服務目前是不收費的,但是從長遠來看,收費是一種必然趨勢。

3.系統設計與實現

本文采用XMPP協議作為消息推送系統的解決方案,XMPP協議也是目前最流行的一種消息推送協議。

XMPP中定義了三個角色,客戶端,服務器,網關。通信能夠在這三者的任意兩個之間雙向發生。服務器同時承擔了客戶端信息記錄,連接管理和信息的路由功能。網關承擔著與異構即時通信系統的互聯互通。基本的網絡形式是單客戶端通過TCP/IP連接到單服務器,然后在之上傳輸XML。

基于XMPP協議的開源的客戶端框架是smack,它主要封裝了一些XMPP的實現,asmack是改進版的 smack。而另外一個開源框架的誕生,則是對在引用smack的基礎上實現和服務器端的持久連接,以實現服務器對客戶端的推送,那就是Android push notification,簡稱Androidpn。

3.1 服務器端

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負責實現服務器向客戶端推送消息功能。

3.2 客戶端

Androidpn在客戶端集成了asmack。這樣就可以很容易的簡立一個和服務器端的基于xmpp協議的socket連接。Androidpn的客戶端中,進行管理連接的類是XmppManager,它主要用來管理連接的信息,比如XMPP的端口、IP、登錄的用戶名密碼,以及對連接的維護。整個服務器端和客戶端的通信是基于一個session(會話)過程。

4.系統實現

4.1 搭建平臺[3]

首先去官網下載AndroidPN源碼服務端和客戶端,用Eclipse導入AndroidPN server即服務端。由于AndroidPn 默認采用的數據庫是HSQLDB 數據庫,并不具有普適性,這里采用服務器端本地的MySQL 數據庫進行部署。修改服務器端配置文件jdbc.properties文件,修改jdbcurl項為:jdbc:mysql://localhost/apn?&useUnicode;=true&characterEncoding;=utf8,修改jdbcusername和jdbcpassword為MySql的連接賬號和密碼。若采用SQLServer 數據庫系統,可修改為相應的數據庫連接內容,并導入相應jar 包,新建一個對應的空數據庫。然后,運行并導出war文件,上傳到tomcat服務器。

解壓androidpn-client-0.5.0.zip,導入eclipse工程,運行前更改一處IP地址,修改res/raw/androidpn.properties文件中的xmppHost為xmppHost=10.0.2.2。

4.2服務器端

Androidpn平臺可以實現手動信息推送,但是不能實現自動消息推送,因此需要自己編寫接口調用推送服務來實現信息的自動推送。在Androidpn Sever創建Apicontroller類,用于接收應用程序發送過來的數據,并將消息推送出去。應用程序可以通過接口調用來實現消息的自動推送。

4.3 客戶端

獲得NotificationManager對象,構建一個Notification對象,該對象描述了通知的標題和內容,然后再調用NotificationManager.notify方法發起通知,發起后的通知就會在消息欄提示。

5.結束語

移動終端的消息推送服務目前得到了廣泛的應用,本文基于目前比較主流的消息推送協議XMPP協議,設計并實現了一個消息推送系統,利用Androidpn框架可以實現由服務器端向客戶端的文本信息的推送。

參考文獻

[1]王美妮,王穎,趙偉.基于XMPP協議消息推送機制的研究與實現[J].長春師范學院學報(自然科學版). 2014,33.

[2]黃河清,陳文. Android平臺消息推送服務的實現[J].網絡與通信.2014,18.

[3]常新峰,呂樂樂. Android平臺下消息推送機制的研究與實現[J].計算機軟件與應用. 2014,14.

主站蜘蛛池模板: 欧美一区中文字幕| 超碰精品无码一区二区| 伊人久久精品无码麻豆精品| 亚洲精品第1页| 国产小视频a在线观看| 成人久久精品一区二区三区| 国产精品区视频中文字幕| 久久精品人人做人人爽| 亚洲人成电影在线播放| 强乱中文字幕在线播放不卡| 亚洲视频在线青青| 亚洲美女一级毛片| 99九九成人免费视频精品| 亚洲人在线| 国产噜噜噜视频在线观看 | 又黄又爽视频好爽视频| 久久综合成人| 99热这里只有精品久久免费| 亚洲国产欧洲精品路线久久| 99视频在线免费观看| 亚洲精品第一页不卡| 欧美午夜理伦三级在线观看| 精品一区二区久久久久网站| 国产精品护士| аⅴ资源中文在线天堂| 国产精品99在线观看| 国产乱人伦偷精品视频AAA| 91小视频在线观看| 亚洲第一网站男人都懂| 国产欧美在线| 福利姬国产精品一区在线| 国产乱子伦无码精品小说 | 国产成人做受免费视频| 中文成人在线| 欧美午夜精品| 伊人网址在线| 久久精品人人做人人综合试看| 亚洲嫩模喷白浆| 亚洲精品少妇熟女| 精品成人免费自拍视频| 亚洲国产日韩在线观看| 天天躁日日躁狠狠躁中文字幕| 日韩高清中文字幕| 99在线观看精品视频| 国产一在线观看| 亚洲精选高清无码| 呦女精品网站| 伊人福利视频| 国产精品久久自在自2021| a级毛片视频免费观看| 国产拍在线| 国产欧美视频在线| 99久久亚洲综合精品TS| 久久国产精品77777| 日韩免费毛片| 亚洲婷婷六月| 怡红院美国分院一区二区| 国产成人综合网| 996免费视频国产在线播放| 亚洲中文无码h在线观看| 国产无码精品在线播放| 亚洲成人播放| 亚洲综合中文字幕国产精品欧美 | 在线国产毛片手机小视频| 国产精品主播| 国产成人毛片| 免费国产高清精品一区在线| 亚洲国产精品日韩欧美一区| 综合色婷婷| 在线另类稀缺国产呦| 国内精品九九久久久精品| 国产第一福利影院| 国产aⅴ无码专区亚洲av综合网| 人妻丰满熟妇αv无码| 国产主播在线观看| 国产精品私拍99pans大尺度| 国产成人AV综合久久| 精品日韩亚洲欧美高清a| 国产日本欧美在线观看| 日韩a级片视频| 国产在线观看99| 国产在线欧美|