?

基于Jersey和Retrofit框架的在線聊天系統的設計與實現

2020-04-14 04:54鄧居旺王杰許敏
電腦知識與技術 2020年4期
關鍵詞:即時通訊服務端聊天

鄧居旺 王杰 許敏

摘要:伴隨著互聯網技術的高速發展,信息交流是人們生活中必不可少的一環,作為信息交流的支撐,在線聊天系統已成為信息交流的重要途徑。在實際應用中,滿足用戶在線聊天的情況下,用戶體驗、信息安全、已成為衡量在線聊天的一個重要指標,如何在適度的成本下,為企業設計并開發一個用戶體驗良好,信息安全的在線聊天系統,有著一定的需求。文章中基于Jersey和Retrofit框架的在線聊天系統不僅實現了在線聊天的功能,還使用了基于Jersey和Retrofit框架,解決了用戶體驗差以及用戶信息暴露的問題。

關鍵詞:在線聊天系統;Jersey和Retrofit框架;用戶體驗;信息安全

中圖分類號:TP311

文獻標識碼:A

文章編號:1009-3044(2020)04-0032-03

Design and Implementation of Online Chat System Based on Jersey and Retrofit Framework

DENG Ju-wang1,WANG Jie2,XU Min1

(1.School of Internet of Things Technology,Wuxi Institute of Technology,Wuxi 214121,China;2.Test Business Department,Wuxi Olanto Technology Co.,Ltd,Wuxi 214000,China)

Abstract:With the rapid development of Internet technology,information exchange is an essential part of people's life.As the support of information exchange,online chat system has become an important way of information exchange.In practical application,to meet the needs of online chat,user experience and information security have become an important indicator of online chat.How to design and develop an online chat system with good user experience and information security for enterprises at a moderate cost has a certain demand.In this paper,the online chat system Based on the Jersey and retrofit framework not only realizes the online chat function,but also uses the Jersey and retrofit framework to solve the problem of poor user experience and user information exposure.

Key words:online chat system;Jersey and retrofit framework;user experience;infonnation security

隨著互聯網技術的不斷發展,在線聊天系統的需求日益增長[1],騰訊2019年第一季度微信活躍賬戶數已達11.12億,同比增長6.9%,繁榮的背后離不開大量用戶的積極參與,也離不開在線聊天系統的良好用戶體驗和信息安全。當前在線聊天是對信息交流的新需求,早期人們的信息交流是通過口耳相傳,文字發明后,人們傾向于使用書信進行信息交流,但都要遭受時間和空間的限制⑵。到了20世紀70年代,Email的出現意味著人們不用再遭受時間和空間的限制[2],人們可以隨時使用Email進行信息交流[3]。到了21世紀之后,由于Email和短信不再能滿足人們交流的需求,即時通訊出現了,人們可以通過使用即時通訊工具,進行文字、視頻或語音的實時交流[4],但大部分都是基于PC端的。在2010年之后,中國互聯網用戶數日新月盛,尤其是以移動手機為載體的中國手機互聯網用戶[5]?,F階段信息交流對在線聊天系統提出了新的要求,不僅要完成在線聊天的基礎功能,還需要保證用戶的信息安全不被泄露,給用戶更好的體驗,根據每一位用戶個性化定制服務[6]。

1 需求分析

隨著互聯網時代的發展,在線聊天無處不在,聊天系統的用戶體驗以及信息安全也得到了越來越大的重視[7],從中小型企業的角度來看,考慮到成本問題,很難開發出一套用戶體驗良好并且能保證信息安全的在線聊天系統;另外,如果把在自己的業務托管到微信、QQ、阿里旺旺等,那么自己的客戶資源就會被暴露出來,無形中降低了競爭力。因此,如何在適度成本下,為中小型企業設計并開發用戶體驗良好并信息安全的,有著現實的需求。

針對這類需求,本研究設計并開發基于Jersey和Retrofit框架的在線聊天系統。該系統實現了在線聊天、群操作、好友操作等基本功能如圖1,并具有如下特性:

(1)釆用MVP(全稱:ModelViewPresenter)模式,保證了系統的簡潔性、靈活性。

(2)釆用Retrofit框架,減少了開發者使用Android原生接口帶來的性能的損耗和問題。

(3)釆用第三方平臺推送,成本低、消息到達率高。

(4)登錄訪問控制,保證信息安全。

2 系統功能概述

本系統功能主要分為Android端功能需求和服務器端功能需求以及非功能需求,具體功能概述如圖2所示。

3 主要技術實現方法

3.1 MVP模式設計

MVP(全稱:Model View Presenter)模式,是我們熟悉的MVC(全稱:Model View Control)模式的演化版本,如圖3所示MVP與MVC的主要區別是View與Model不直接交互,而是通過與Presenter來完成交互,這樣可以修改視圖而不影響模型,達到解耦的目的,實現了Model和View真正的完全分離[8]。MVP模式會解除View和Model的耦合,同時又給整個系統帶來良好的擴展性、可測試性,保證了系統的簡潔性、靈活性。

基于Jersey和Retrofit的在線聊天系統釆用C/S結構開發,分為Android客戶端和服務端兩個部分,使用OSS存儲圖片和語音,最后使用第三方推送平臺進行推送。

Android客戶端釆用的是MVP+Retrofit開發,登錄的時候需要生成獨有的Token才能完成與服務器的對接,處理后續的操作都是建立在Token的基礎上。除此之外,如果想要進行消息的發送,還需要生成第三方推送的PUSHID(推送主鍵),才能夠進行推送。

服務器端釆用的Jersey+Hibernate開發,用戶登錄的時候服務器需要驗證用戶的Tokeno用戶發送消息,需先經過服務器的處理,才發送給第三方推送平臺,最后推送給Android客戶端。

3.2 Jersey和Retrofit框架

JerseyRESTful框架是開源的RESTful框架,實現了JAX-RS(JSR311和JSR399)規范[9]。在功能上,Jersey和Struts類似,并且同樣支持與Spring和Hibernate的結合。在本系統的服務端,就是通過Jersey+Hibernate實現的。Jersey框架使用注解簡化了請求式服務,支持異步調用,并且支持xml和Json的數據格式。

Retrofit是一個可用于Android的網絡庫。Retrofit不是網絡框架,它實現了對網絡框架OkHttp的完美封裝,真正的網絡請求工作由OkHttp實現。Retrofit能夠簡化開發者對網絡部分的工作,提高開發者的效率和正確性,減少開發者直接使用Android原生接口帶來的性能損耗。

3.3 第三方消息推送平臺

本課題主要研究的是以Android為主體的移動端即時通訊軟件,想要實現即時通訊的功能,一般會有如下幾種方案:

1)第三方平臺集成即時通訊,無須做任何實現。

2)spark+smack+openfire套餐,這個方案基于XMPP,負載重。

3)嵌入第三方推送的SDK,這個方案簡單實用。

4)Socket長連接,適合簡單地使用,影響服務器的性能。

5)基于XMPP自己實現,工作量復雜,負載重。

綜合以上的優缺點,最終選擇通過第三方推送實現。相比較于其他推送方式,使用第三方推送平臺進行推送有著成本低(推送平臺的推送免費,如果自己實現需要消耗很多資源)消息的到達率高等優點。推送流程圖如圖3所示。

3.4 登錄、訪問控制的實現

Android即時通訊的登錄模塊也是整個系統的重要一環,系統需要保證登錄的安全性、穩定性和簡要性[10]。本系統的登錄驗證流程如下:

l)Android客戶端初始化的時候會從個推的服務器獲取設備的Pushld,并存儲到手機里;

2)用戶在即時通訊的客戶端輸入用戶名和密碼,點擊登錄;

3)Android即時通訊客戶端需要確保賬號匹配電話號碼的正則表達式和密碼大于6位;密碼和賬號滿足的情況下,進行下一步操作,否則,提示用戶如何輸入;

4)Android即時通訊客戶端對用戶輸入的密碼進行MD5加密;

5)即時通訊系統將用戶輸入的賬號、密碼和Pushld封裝成實體,創建Socket,發送網絡請求;

6)服務器在接收到用戶的網絡請求,解析當前的數據并判斷當前的數據是否規范,不規范就返回當前的信息不合格;

7)合格的情況下,判斷當前的Pushld是否跟數據庫中的Pushld是否相同,不相同的情況下,強制之前的設備下線,并使用UUID隨機生成新的Token,返回給客戶端;

8)客戶端在接收到新的Token存儲到當前的設備。

因為服務端接口的暴露性,因此我們得注意服務端接口的安全性,避免任何請求都能活到本系統的數據這樣的情況的發生。由于本系統采用的Jersey框架開發,Jersey框架是開源的RESTful框架,眾所周知,RESTful接口沒有狀態,也就是說對App端的所有請求都需要響應。通過在請求頭里面加入Token,實現了對服務端接口的訪問控制。用戶登錄成功后,服務端通過UUID隨機生成一個Token,封裝成用戶信息返回給客戶端,客戶端接收到Token之后,存儲到當前手機,每次訪問服務端接口的時候,都將Token放入請求頭中傳給服務器端,服務端驗證Token之后,才能進行下一步的訪問。

在客戶端發送網絡請求的時,判斷當前是否存在Token,存在的情況下,在請求頭里面添加Token,步驟如下:服務端初始化之前,在Application里面注冊一個全局的攔截器,攔截非注冊和登錄的其他不包含Token的請求。當服務端接收到客戶端的請求之后,獲取請求頭里面的Token,如果Token存在,則查詢對應的用戶,當用戶存在的時候,直接返回。否則,就返回賬戶異常,最終攔截該請求的繼續下發。如圖5訪問控制流程圖所示。

4 結束語

本研究所設計的系統具有以下特點:本系統釆用MVP模式,MVP模式會解除View和Model的耦合,同時又給整個系統帶來良好的擴展性、可測試性,保證了系統的簡潔性、靈活性;釆用Jersey和Retrofit框架,提高開發者的效率和正確性,減少了開發者使用Android原生接口帶來的性能的損耗和問題;使用第三方消息推送平臺,確保了低成本的情況下有較高的消息到達率;登錄和訪問受控制,保證了聊天系統的安全性。

參考文獻:

[1] 何燕青.基于ASP.NET的網上訂餐系統設計與實現[D].成都:電子科技大學,2014.

[2] 郭宇.移動互聯網時代電信運營商商業模式創新研究[D].南昌:江西財經大學,2014.

[3] 周利榮.傳播媒介發展與文學文體演變研究[D].西安:陜西師范大學,2012.

[4] 吳保來.基于互聯網的社交網絡研究[D].北京:中共中央黨校,2013.

[5] 彭歡.移動互聯網使用與滿足研究[D].長沙:湖南師范大學,2012.

[6] 蔣杉杉.手機APP廣告點擊意愿的影響因素研究[D].成都:電子科技大學,2013.

[7] 吳祐昕.Web2.0背景下的新興文化創意產業研究[D].上海:復旦大學,2013.

[8] 鄧志宏,張智,李建奇,等.基于MVP模式的進銷存系統的軟件架構設計[J].計算機與數字工程,2010,38(12):96-99.

[9] 王傳琦.基于RESTful移動教學輔助系統研究與實現[D].沈陽:遼寧大學,2017.

[10] 呂留記.基于Android的即時通訊系統的研究與實現[D].成都:電子科技大學,2016.

[通聯編輯:代影]

猜你喜歡
即時通訊服務端聊天
云存儲中基于相似性的客戶-服務端雙端數據去重方法
新時期《移動Web服務端開發》課程教學改革的研究
民事訴訟中即時通訊記錄的證據采用進路
在Windows Server 2008上創建應用
敞開門聊天
即時通訊軟件發展模型的實證研究
科學技術哲學視域下的即時通訊
摸清黑客套路防范木馬侵入
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合