国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android系統(tǒng)中LBS即時通訊應(yīng)用的設(shè)計與開發(fā)

2014-11-30 05:49:32黃曉亮
惠州學(xué)院學(xué)報 2014年6期
關(guān)鍵詞:即時通訊服務(wù)器端好友

黃 震,黃曉亮

(惠州學(xué)院 計算機(jī)科學(xué)系,廣東 惠州 516007)

1 引言

在智能手機(jī)和移動互聯(lián)網(wǎng)高速發(fā)展的今天,即時通訊應(yīng)用占據(jù)了網(wǎng)絡(luò)中絕大多數(shù)的流量,其得益于能夠提供豐富的功能來滿足用戶的日常交流需要。國內(nèi)很多學(xué)者利用不同的技術(shù)對即時通訊應(yīng)用進(jìn)行了研究,賴曉京實現(xiàn)了基于Htm l5 WebSocket一個即時通訊系統(tǒng)[1],可以直接在網(wǎng)上登錄,避免了下載安裝軟件的麻煩;賀凌云等論述了基于局域網(wǎng)的即時通訊系統(tǒng)的設(shè)計方法[2];田源等研究了Protocol Buffers在即時通訊系統(tǒng)中的應(yīng)用[3];方宣杰等設(shè)計了針對校園內(nèi)部使用的即時通訊平臺,避免了來自網(wǎng)上公眾信息的干擾,可以提升校園工作管理水平和辦公效率[4]。

基于位置服務(wù)(Location Based Service)是借助電信或其他運(yùn)營商的通訊網(wǎng)絡(luò)(如GSM網(wǎng)、CDMA網(wǎng))或其他方式(如GPS)獲得使用應(yīng)用的用戶的位置信息(地理坐標(biāo)),在地理信息系統(tǒng)的幫助下,為使用者反饋相應(yīng)服務(wù)的一種增值業(yè)務(wù)。

本程序?qū)崿F(xiàn)了Android系統(tǒng)平臺上的LBS地理信息獲取、音視頻編碼、XMPP即時通訊傳輸協(xié)議[5,6]等綜合應(yīng)用,能夠?qū)崿F(xiàn)基本的即時通訊功能,同時結(jié)合了LBS服務(wù),為用戶提供了更豐富的功能。服務(wù)器端與客戶端之間基于XMPP通訊協(xié)議,保證通訊的穩(wěn)定性和可靠性。

2 程序功能分析

即時通訊是一種基于互聯(lián)網(wǎng)的即時交流信息的業(yè)務(wù),是一個終端服務(wù),允許兩個人或者多人使用網(wǎng)絡(luò)即時的傳送文字等數(shù)據(jù)。因此,移動平臺上的即時通訊應(yīng)用扮演著人與人之間交流橋梁的角色。用戶對提供即時通訊的移動端應(yīng)用程序基本功能的要求,使本程序在包含基本需求的前提下,結(jié)合LBS核心功能和地理信息系統(tǒng),得出了服務(wù)器端與客戶端兩部分的程序功能分析。

圖1 服務(wù)器端的會話管理流程圖

服務(wù)器端的會話管理流程如圖1所示,服務(wù)器端的會話管理主要是XMPP服務(wù)器對客戶端發(fā)起的會話的內(nèi)容信息的即時分發(fā),包括賬號管理、用戶信息管理、聊天內(nèi)容管理、地理位置信息管理。服務(wù)器端中賬戶管理模塊對用戶賬號的注冊與登錄進(jìn)行管理,同時保證賬號的唯一性;用戶信息管理對用戶信息的管理,包括用戶個人賬號、昵稱、性別和所在地的增刪查改;聊天內(nèi)容管理即時將相應(yīng)的聊天信息分發(fā)到對應(yīng)的賬號,保證客戶端接收消息的實時性;地理位置信息管理存儲客戶端上傳到服務(wù)器的位置信息,包括賬號、昵稱、經(jīng)度和緯度,并響應(yīng)客戶端的位置信息檢索請求,反饋對應(yīng)的位置信息列表到客戶端。

客戶端的會話管理流程如圖2所示,客戶端會話管理主要是客戶端用戶登錄與注冊、好友管理、聊天記錄管理、文件共享管理、用戶信息管理、聊天會話和地理位置定位等??蛻舳酥械卿浥c注冊模塊依據(jù)用戶輸入的賬號和密碼進(jìn)行非空檢測,同時發(fā)送相應(yīng)的數(shù)據(jù)到服務(wù)器端進(jìn)行校驗;個人信息管理模塊提供對用戶信息的查看,包括昵稱、年齡、性別、所在地,對用戶自身信息的修改;好友管理模塊提供根據(jù)賬號添加好友,查看好友個人信息,刪除好友功能;聊天管理模塊可進(jìn)行文本會話、語音會話、視頻通話、文件發(fā)送和接收,并對本地聊天記錄進(jìn)行保存;地理定位管理模塊對當(dāng)前客戶端所在地理位置信息進(jìn)行感知,包括經(jīng)度和緯度,并上傳服務(wù)器端同步,同時,可以從服務(wù)器端檢索附近存在的用戶信息,并根據(jù)其賬號添加對方為好友,然后進(jìn)行聊天對話。

圖2 客戶端的會話管理流程圖

3 程序的設(shè)計

3.1 服務(wù)器端數(shù)據(jù)庫

在本程序功能分析的基礎(chǔ)上,結(jié)合XMPP即時通訊傳輸協(xié)議和Openfire開源實時協(xié)作服務(wù)器的功能特性,以O(shè)penfire默認(rèn)數(shù)據(jù)庫管理模塊為出發(fā)點(diǎn),擴(kuò)展服務(wù)器端對用戶信息、好友信息、會話信息、多人聊天信息的管理,其中用戶個人信息表結(jié)構(gòu)如圖3所示。

圖3 用戶個人信息表(think_user)

地理位置信息表結(jié)構(gòu)如圖4所示。

圖4 地理位置信息表(think_location)

服務(wù)器端數(shù)據(jù)庫的E-R圖如圖5所示。

圖5 擴(kuò)展表與Openfire自帶數(shù)據(jù)庫關(guān)系圖

3.2 客戶端數(shù)據(jù)庫

客戶端數(shù)據(jù)庫中會話消息表結(jié)構(gòu)設(shè)計如圖6所示。

圖6 會話消息表(XCHAT_message)

文件信息表結(jié)構(gòu)如圖7所示。

圖7 文件信息表(XCHAT_file)

會話記錄表結(jié)構(gòu)如圖8所示。

圖8 會話記錄表(XCHAT_talk)

客戶端數(shù)據(jù)庫的E-R圖如圖9所示。

圖9 客戶端數(shù)據(jù)庫E-R圖

3.3 架構(gòu)設(shè)計

在針對本程序功能分析和數(shù)據(jù)庫設(shè)計的基礎(chǔ)上,對本程序使用了三層架構(gòu)(MVC)進(jìn)行程序架構(gòu)設(shè)計,服務(wù)器端結(jié)合Openfire、Apache Web服務(wù)器和ThinkPHP框架,協(xié)調(diào)處理客戶端與服務(wù)器的各種數(shù)據(jù)交換和數(shù)據(jù)處理,使用MySQL關(guān)系型數(shù)據(jù)庫儲存服務(wù)器端處理的數(shù)據(jù)信息。同時,客戶端亦遵循Android系統(tǒng)MVC架構(gòu),視圖層顯示用戶界面,控制層響應(yīng)用戶操作,模型層處理與數(shù)據(jù)庫有關(guān)的操作等。

4 程序的實現(xiàn)

4.1 服務(wù)器端實現(xiàn)

通過搭建開源即時協(xié)作服務(wù)器Openfire,即將本地服務(wù)器構(gòu)建成為一個支持XMPP協(xié)議的XMPP服務(wù)器,所有遵從XMPP協(xié)議標(biāo)準(zhǔn)的應(yīng)用程序都可以與此XMPP服務(wù)器建立連接。從而,本即時應(yīng)用程序能夠在此基礎(chǔ)上擴(kuò)展服務(wù)器的功能。在用戶信息管理模塊中,服務(wù)器端自動檢測客戶端發(fā)送的請求類型,并做出相應(yīng)的響應(yīng)動作,如響應(yīng)客戶端的GET或POST方式的請求動作。

4.2 客戶端實現(xiàn)

4.2.1 用戶登錄和注冊模塊

本程序客戶端中用戶登錄和注冊模塊對用戶的賬號進(jìn)行管理和檢測,在用戶擁有合法賬號的前提下,使用其賬號登錄本程序,客戶端調(diào)用XMPPAPI中的login方法,檢驗用戶名和與之對應(yīng)的密碼,即可正常使用本程序。本模塊視圖層的用戶界面如圖10所示。

圖10 登錄和注冊

4.2.2 用戶信息管理模塊

用戶信息管理模塊具有用戶查看和修改自身賬號資料信息、查看其他用戶資料信息的功能,同時,支持修改用戶資料信息,并將信息提交到服務(wù)器端保存。數(shù)據(jù)操作上采用GET方式獲取用戶信息,采用POST上傳信息。本模塊視圖層用戶界面如圖11、圖12所示。

圖11 用戶信息查看

圖12 用戶信息修改

4.2.3 好友管理模塊

此模塊提供好友的添加和展示功能,用戶通過好友列表,可選擇好友進(jìn)行聊天;通過對方賬號,在對方同意添加請求后,即可成為聊天好友并進(jìn)行聊天。在實現(xiàn)方式上,客戶端調(diào)用XMPPAPI的createEntry方法和removeEntry方法,實現(xiàn)添加好友和刪除好友的功能。本模塊視圖層用戶界面如圖13、圖14所示。

圖13 好友列表

圖14 添加好友

4.2.4 地理位置定位模塊

地理位置定位模塊具有通過Android智能手機(jī)傳感器感知地理位置的功能,數(shù)據(jù)同步上傳至服務(wù)器,并能在其他客戶端上被用戶所檢索到,用戶通過附近的人可查看用戶信息和添加對方為好友。本程序所使用的定位服務(wù)為高德定位SDK,通過網(wǎng)絡(luò)、基站和GPS定位來獲取位置信息。本模塊視圖層用戶界面如圖15、圖16所示。

圖15 附近的人

圖16 附近的人列表操作

4.2.5 聊天會話模塊

聊天會話模塊具有一對一聊天和多人聊天功能。當(dāng)用戶當(dāng)前沒有正在與發(fā)送消息的好友進(jìn)行聊天會話時,客戶端收到對方發(fā)送過來的消息后顯示在程序主界面上,當(dāng)用戶正在與該用戶進(jìn)行聊天時,客戶端則將消息直接顯示在聊天窗口的界面上,同時,用戶可以通過聊天窗口發(fā)送文件給對方。通過調(diào)用XMPPAPI的sendMessage方法發(fā)送會話消息,并監(jiān)聽對方發(fā)送過來的消息,同步顯示在聊天窗口上。除此,聊天窗口亦能夠進(jìn)行音頻傳輸和視頻聊天。本模塊視圖層用戶界面如圖17至圖22所示。

圖17 一對一聊天

圖19 錄制語音消息

圖20 接收語音消息

圖21 視頻通話

圖22 多人聊天

5 程序?qū)崿F(xiàn)的關(guān)鍵技術(shù)

5.1 Speex音頻編解碼

在智能手機(jī)終端進(jìn)行語音消息的錄制時,由于設(shè)備性能和網(wǎng)絡(luò)傳輸速度的局限,對數(shù)據(jù)所占用的空間進(jìn)行壓縮則成為提高程序執(zhí)行效率的有效方法。針對各種開源的免費(fèi)音頻處理引擎,并在保證壓縮質(zhì)量、易于使用的前提下,Speex[7,8]就擁有這些優(yōu)點(diǎn),并提供了不錯的性能。通過其處理的音頻數(shù)據(jù),能夠清晰地互相傳送,信息真實。

另外,相對于其它編解碼器,在網(wǎng)絡(luò)應(yīng)用上,Speex也非常適合網(wǎng)絡(luò)環(huán)境。Speex針對不同設(shè)備的噪音抑制功能有大致相同的效果,減少背景噪音,改善音質(zhì),自動增益控制(AGC)則就是用來處理這種情況的,它提供了一種調(diào)整信號為參考變量的方法。有時候會有丟包和錯誤時序的情況發(fā)生,特別在使用UDP方式進(jìn)行數(shù)據(jù)傳輸?shù)臅r候,抖動緩沖的目的就是將它們緩沖到足夠長并對這些包進(jìn)行重排序,然后交給編碼器進(jìn)行解碼。

在免提通訊系統(tǒng)中,聲音從遠(yuǎn)端傳回本地的擴(kuò)音器,麥克風(fēng)就會捕獲房間內(nèi)的回聲,然后將其直接發(fā)送回遠(yuǎn)端,遠(yuǎn)端用戶就會聽到自己的回音。而回聲消除器就是為了將傳回遠(yuǎn)端用戶的回聲消除,提高遠(yuǎn)端用戶接收到的聲音質(zhì)量。

5.2 網(wǎng)頁實時通信(Web Real-Time Communication)

WebRTC[9,10]是一種支持網(wǎng)頁瀏覽器進(jìn)行音視頻聊天的開源框架,基于javascript和P2P,在不同的瀏覽器之間構(gòu)建起一個傳輸視頻和音頻數(shù)據(jù)的橋梁,使其擺脫客戶端的限制,并擁有不錯的多用戶接入特性。

WebRTC的視頻模塊包括獲取視頻數(shù)據(jù)、視頻數(shù)據(jù)編碼、數(shù)據(jù)加密、多媒體文件和圖像的處理、視頻展示、網(wǎng)絡(luò)數(shù)據(jù)傳輸與流數(shù)據(jù)控制等功能。視頻采集(video-capture)支持多種媒體類型,如I420、YUY2、RGB、UYUY等,并可以進(jìn)行幀大小和幀率控制;視頻編解碼(video-coding)采用I420/VP8編解碼技術(shù),VP8能以更少的數(shù)據(jù)提供更高質(zhì)量的視頻;視頻加密(video-engine-encryption)相當(dāng)于視頻應(yīng)用層面的功能,給點(diǎn)對點(diǎn)的視頻雙方提供數(shù)據(jù)的安全保證,防止視頻數(shù)據(jù)的泄漏。數(shù)據(jù)加密采用密鑰對數(shù)據(jù)進(jìn)行處理并在接收方對數(shù)據(jù)解密并顯示。同時,WebRTC還能對幀數(shù)據(jù)進(jìn)行處理,增加亮度,提高清晰度,而且,還在不增加數(shù)據(jù)量和保證傳輸速度的情況下,可以動態(tài)改變視頻質(zhì)量,保證音視頻數(shù)據(jù)的正確。視頻顯示(video-render)則是用來進(jìn)行圖像的渲染,在網(wǎng)絡(luò)傳輸和流控方面,WebRTC采用了成熟的RTP/RTCP技術(shù)。

WebRTC技術(shù)最突出的特點(diǎn)就是通過瀏覽器就能進(jìn)行視頻通訊,擺脫了客戶端的限制,只要一小段代碼,就能實現(xiàn)視頻通訊服務(wù)。

6 結(jié)束語

本文在對Android系統(tǒng)LBS即時通訊應(yīng)用的開發(fā)基礎(chǔ)上,對XMPP協(xié)議和Android系統(tǒng)應(yīng)用開發(fā)技術(shù)進(jìn)行研究,結(jié)合音頻處理和視頻處理技術(shù),實現(xiàn)了一個滿足基本需求的移動終端結(jié)合LBS特色的即時通訊應(yīng)用,符合用戶對程序功能的基本要求。

[1]賴曉京.基于Html5 WebSocket的即時通訊系統(tǒng)[J].電子技術(shù)與軟件工程,2013(17):61-62.

[2]賀凌云,李明哲.基于Delphi的即時通訊系統(tǒng)的設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013(4):60-62.

[3]田源,潘晨光,丁杰.Protocol Buffers在即時通訊系統(tǒng)中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2014,31(5):32-34.

[4]方宣杰,陳文生.校園即時通訊平臺的設(shè)計與實現(xiàn)[J].信息通信,2014(3):115-116.

[5]李新路.XMPP協(xié)議在Android即時通訊系統(tǒng)中的應(yīng)用[J].電腦知識與技術(shù),2013,9(28):6268-6270.

[6]齊幸輝,張庚,劉革,等.基于XMPP協(xié)議的文件傳輸模塊設(shè)計與實現(xiàn)[J].無線電工程,2014,44(3):1-4.

[7]楊果,王亞潔,王晶.Speex編碼器中回聲消除算法的分析與評估[J].電聲技術(shù),2014,37(9):52-55.

[8]張立文,吳迪,宋占偉.基于Speex的嵌入式無線數(shù)字音頻交互系統(tǒng)[J].吉林大學(xué)學(xué)報,2013,31(4):353-358.

[9]林鴻,王松,楊鑫,等.基于WebRTC技術(shù)的應(yīng)用及平臺技術(shù)開發(fā)與設(shè)計[J].電信科學(xué),2013,29(9):20-25.

[10]董振江,李從兵,王蔚,等.移動互聯(lián)網(wǎng)WebRTC及相關(guān)技術(shù)[J].中興通訊技術(shù),2013(6):28-32.

猜你喜歡
即時通訊服務(wù)器端好友
屬羊
民事訴訟中即時通訊記錄的證據(jù)采用進(jìn)路
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
成功(2018年10期)2018-03-26 02:56:14
刪除好友
雜文月刊(2017年20期)2017-11-13 02:25:06
即時通訊軟件發(fā)展模型的實證研究
東方教育(2016年19期)2017-01-16 12:34:53
科學(xué)技術(shù)哲學(xué)視域下的即時通訊
科技傳播(2015年14期)2015-12-13 04:20:18
在Windows中安裝OpenVPN
即時通訊軟件WhatsApp
CHIP新電腦(2015年10期)2015-10-15 18:03:55
網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗證
伊金霍洛旗| 浠水县| 肥城市| 犍为县| 光泽县| 买车| 大余县| 黔南| 宝山区| 洛宁县| 廉江市| 陇南市| 临江市| 修水县| 凤翔县| 扎鲁特旗| 大方县| 蒲城县| 杂多县| 麟游县| 峨眉山市| 禄丰县| 泸西县| 白玉县| 莲花县| 萝北县| 酒泉市| 濉溪县| 林芝县| 莆田市| 华阴市| 常熟市| 都江堰市| 桦甸市| 梧州市| 太原市| 淮阳县| 枣阳市| 永康市| 大庆市| 固阳县|