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

基于Android的消息推送的研究與實(shí)現(xiàn)

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

閆俊英 李熙明 曹錫貴

摘 要:隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展,消息推送在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域智能終端的應(yīng)用越來越廣泛,成為智能終端產(chǎn)品實(shí)時(shí)發(fā)布信息的一種重要手段。本文主要研究了目前基于Android的消息推送的幾種解決方案,并選擇基于XMPP協(xié)議,實(shí)現(xiàn)了一個(gè)基于Android的消息推送系統(tǒng)。

關(guān)鍵詞:Android,消息推送,XMPP協(xié)議

1.引言

隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,智能手機(jī)和各種智能終端的用戶越來越多,移動(dòng)互聯(lián)網(wǎng)已經(jīng)成為人們獲取信息的一個(gè)最佳平臺(tái)。如何及時(shí)或定時(shí)地向用戶發(fā)送各種信息越來越成為目前研究的熱點(diǎn),消息推送就被用在了傳送信息的各個(gè)領(lǐng)域。IOS平臺(tái)已經(jīng)提供了官方的消息推送的解決方案[1],但是Android平臺(tái)的解決方案卻比較復(fù)雜。本文分析了Android平臺(tái)的消息推送的幾種不同的解決方案,最后基于XMPP協(xié)議實(shí)現(xiàn)了一個(gè)消息推送系統(tǒng)。

2.消息推送技術(shù)

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

2.1 GCM云推送

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

2.2 MQTT協(xié)議

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

2.3 XMPP協(xié)議

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

2.4 第三方平臺(tái)

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

3.系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

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

XMPP中定義了三個(gè)角色,客戶端,服務(wù)器,網(wǎng)關(guān)。通信能夠在這三者的任意兩個(gè)之間雙向發(fā)生。服務(wù)器同時(shí)承擔(dān)了客戶端信息記錄,連接管理和信息的路由功能。網(wǎng)關(guān)承擔(dān)著與異構(gòu)即時(shí)通信系統(tǒng)的互聯(lián)互通。基本的網(wǎng)絡(luò)形式是單客戶端通過TCP/IP連接到單服務(wù)器,然后在之上傳輸XML。

基于XMPP協(xié)議的開源的客戶端框架是smack,它主要封裝了一些XMPP的實(shí)現(xiàn),asmack是改進(jìn)版的 smack。而另外一個(gè)開源框架的誕生,則是對(duì)在引用smack的基礎(chǔ)上實(shí)現(xiàn)和服務(wù)器端的持久連接,以實(shí)現(xiàn)服務(wù)器對(duì)客戶端的推送,那就是Android push notification,簡稱Androidpn。

3.1 服務(wù)器端

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

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

最上層包含四個(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ù)器向客戶端推送消息功能。

3.2 客戶端

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

4.系統(tǒng)實(shí)現(xiàn)

4.1 搭建平臺(tái)[3]

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

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

4.2服務(wù)器端

Androidpn平臺(tái)可以實(shí)現(xiàn)手動(dòng)信息推送,但是不能實(shí)現(xiàn)自動(dòng)消息推送,因此需要自己編寫接口調(diào)用推送服務(wù)來實(shí)現(xiàn)信息的自動(dòng)推送。在Androidpn Sever創(chuàng)建Apicontroller類,用于接收應(yīng)用程序發(fā)送過來的數(shù)據(jù),并將消息推送出去。應(yīng)用程序可以通過接口調(diào)用來實(shí)現(xiàn)消息的自動(dòng)推送。

4.3 客戶端

獲得NotificationManager對(duì)象,構(gòu)建一個(gè)Notification對(duì)象,該對(duì)象描述了通知的標(biāo)題和內(nèi)容,然后再調(diào)用NotificationManager.notify方法發(fā)起通知,發(fā)起后的通知就會(huì)在消息欄提示。

5.結(jié)束語

移動(dòng)終端的消息推送服務(wù)目前得到了廣泛的應(yīng)用,本文基于目前比較主流的消息推送協(xié)議XMPP協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)消息推送系統(tǒng),利用Androidpn框架可以實(shí)現(xiàn)由服務(wù)器端向客戶端的文本信息的推送。

參考文獻(xiàn)

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

[2]黃河清,陳文. Android平臺(tái)消息推送服務(wù)的實(shí)現(xiàn)[J].網(wǎng)絡(luò)與通信.2014,18.

[3]常新峰,呂樂樂. Android平臺(tái)下消息推送機(jī)制的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)軟件與應(yīng)用. 2014,14.

主站蜘蛛池模板: 中文字幕 日韩 欧美| 手机精品视频在线观看免费| 免费一级毛片不卡在线播放| 免费av一区二区三区在线| 国产成年女人特黄特色大片免费| 婷婷亚洲天堂| 免费一级无码在线网站| 最新精品国偷自产在线| 亚亚洲乱码一二三四区| 国产一区二区三区夜色| 亚洲系列中文字幕一区二区| 国产屁屁影院| 国产亚洲高清视频| 亚洲精品视频免费| 免费无码一区二区| 亚洲男女在线| 狠狠躁天天躁夜夜躁婷婷| 国产男女XX00免费观看| 亚洲欧美国产高清va在线播放| 丝袜高跟美脚国产1区| 找国产毛片看| 性视频久久| 毛片a级毛片免费观看免下载| 91小视频在线| 毛片a级毛片免费观看免下载| 欧美一级大片在线观看| 亚洲综合色婷婷中文字幕| 国产成人精品免费视频大全五级| 国产乱子伦手机在线| 538国产在线| 日韩精品无码免费专网站| 国产在线97| 国产成人精品综合| 中国精品自拍| 国产精品永久在线| 久久久黄色片| 成人综合久久综合| 欧美三级不卡在线观看视频| 国产视频a| 怡红院美国分院一区二区| 999国产精品永久免费视频精品久久| 凹凸精品免费精品视频| 日韩在线中文| 午夜福利亚洲精品| 亚洲成人网在线播放| 成年av福利永久免费观看| 99精品一区二区免费视频| a级毛片免费看| 一级香蕉视频在线观看| 成人日韩精品| 国产日韩欧美在线播放| 国产在线第二页| 在线va视频| 免费A级毛片无码无遮挡| 久久国产精品影院| 欧洲一区二区三区无码| 一区二区午夜| 国产粉嫩粉嫩的18在线播放91| 欧美成人午夜影院| 欧美19综合中文字幕| 99热国产在线精品99| 久久综合九九亚洲一区| 久久99久久无码毛片一区二区| 国产无码性爱一区二区三区| 国产精品成人啪精品视频| 日韩毛片视频| 无码高潮喷水专区久久| 国产第四页| 五月天福利视频| 国产福利大秀91| 日本高清在线看免费观看| 日韩一区精品视频一区二区| 在线观看热码亚洲av每日更新| 999精品在线视频| 99精品伊人久久久大香线蕉 | 国产亚洲男人的天堂在线观看 | 99精品高清在线播放| 国产精品一区在线观看你懂的| 大陆精大陆国产国语精品1024 | 91精选国产大片| 欧美午夜精品| 欧美一区二区啪啪|