《移动终端即时通讯(整理).》由会员分享,可在线阅读,更多相关《移动终端即时通讯(整理).(30页珍藏版)》请在金锄头文库上搜索。
1、基于移动终端即时通讯关键技术研究及应用2016-12-26目录第一章 绪论31.1研究背景31.1.1即时通讯应用现状31.1.2会展应用平台41.2研究问题及分析41.2.1应用现状41.2.2问题提出51.3主要工作及意义81.4本文组织9第二章 相关工作102.1即时通讯技术简介102.1.1即时通讯概念102.1.2即时通讯相关技术102.2 XMPP协议简介102.3 XMPP协议工作原理112.4 XMPP协议开源工程简介112.4.1 Openfire简介112.4.2 Smack简介122.5本章小结12第三章 基于XMPP协议的即时通讯关键技术研究133.1会展平台集成即时通
2、讯模块133.1.1会展平台即时通讯模块133.1.2会展平台服务端整合架构143.2即时通讯模块服务端扩展153.2.1 Openfire服务端插件扩展153.2.2 Openfire服务端集群搭建与负载均衡153.3消息收发可靠性保障机制研究163.3.1消息收发可靠性分析163.3.2消息回执定义173.3.3消息回执XML流扩展定义173.3.4基于消息回执的收发保障机制193.5本章小结22第四章 即时通讯模块实现结果与分析234.1消息类型扩展及服务功能整合实现结果测试234.2集群与负载均衡功能实现测试254.3本章小结26第五章 总结与展望275.1主要总结275.2研究展望2
3、7第一章绪论自从2007年第一款搭载IOS系统的智能手机的发布,及之后Android系统快速发展,深刻改变了人们的生活方式,由此产生了许多与生活工作相关的移动端应用软件,大部分的应用软件在设计实现过程中都有一个需求,就是如何将移动端的即时通讯模块嵌入到自己的应用软件开发中,而本文就针对这个问题进行了关键问题研究及应用验证。在本章中首先说明了论文工作选题的背景,目前应用中存在的问题及其相关分析,然后说明本文需要解决的问题及论文工作的意义,本章最后一节说明了本文的内容组织结构。1.1研究背景1.1.1即时通讯应用现状 近年来,随着移动终端和移动互联网的快速发展,以微信、腾讯QQ为代表的即时通讯应用
4、得到了迅速的发展,许多应用软件如支付宝、新浪微博等都在自身应用软件中添加了即时通讯模块,用户可以使用这些软件进行会话,发送文本、音视频及其他内容类消息。表1.1即时通讯客户端使用统计目前,即时通讯类应用软件在国内外应用较为普遍,表1-I是根据维基百科在全球范围内的一个即时通讯(Instant Messging,简称IM)客户端使用的统计数据和各个企业最新发布的IM应用情况,由于基于XMPP ( Extensible Messageingand Presence Protocol)协议实现的即时客户端具有分散性,数据统计存在一定误差,故只作参考。从数据可以看出使用和支持XMPP协议提供即时通讯服
5、务的客户端数占有比较大的比例,这些用户数据主要包含Facebook、Google Talk、GCM(Google Cloud messaging )、pidgin、spark等客户端用户数以及其他使用该协议的客户端用户。由于XMPP协议是标准、自由、开放、公开的,使得XMPP协议伴随着移动互联网的发展而得到迅速的发展,目前许多提供第三方即时通讯服务项目的即时通讯模块都是基于XMPP协议开发的。1.1.2会展应用平台会展应用软件作为本篇论文的研究应用平台,该平台主要是面向会展行业,以参展商和观展商为主要用户,其业务涉及到用户间的即时消息沟通、业务内容消息处理等。另外,其他业务还包含用户会话管理,
6、邀约消息管理,用户搜索和个人资料管理等服务,在会展应用中将使用XMPP协议实现用户间的即时通讯服务,从而将即时通讯模块嵌入到会展平台,以便满足用户的业务需求。会展应用平台有两个版本,分别是基于Android和IOS系统开发的,而本文研究内容及其成果适用于这两种平台,而在本文应用中将以Android平台为例。1.2研究问题及分析1.2.1应用现状本文以会展应用软件为研究平台,在该平台中添加即时通讯模块,在移动端平台下基于XIVVIPP协议实现即时通讯模块,主要是通过XIVEP协议的一些开源项目来实现,由ignite realtime社区提供的Openfire作为即时通讯服务器,Smack作为客户
7、端类库,搭建一个C/S架构即时通讯服务模块,如下图1-1所示。通过自己搭建的通讯服务器和客户端开源类库接口,可以较为便利的实现客户端之间的即时通讯服务,同时也可以在通讯服务端进行适当扩展,定制出符合会展应用平台需求的即时通讯服务。Openfire通讯服务器可以通过插件开发的形式进行功能定制和扩展,客户端通过使用Smack提供的接口进行通讯将简化相关代码编写,并且客户端Exhibition可以根据用户需求,实现定制即时通讯模块的功能。图1-1 会展平台整体结构图1-1为会展应用平台的整体架构图,在会展应用平台中嵌入即时通讯模块时所涉及到的部分组件包含业务功能中“我的会话”界面的相关处理,“我的会
8、话”界面作为平台主界面用于显示会话用户列表,点击某个用户就可以进入会话界面,会话消息类型须包含文本、表情、图片、邀约消息、接受邀约消息和拒绝邀约消息等。在会展应用服务端架构组合中,包含业务应用服务器Tomcat,文件服务器FastDFS和即时通讯服务器Openfire,分别为客户端提供业务数据的处理,文件的上传下载服务和客户端之间的即时通讯服务,从而实现了用户所需要的基本服务。1.2.2问题提出首先,即时通讯服务器Openfire是通过接收并转发客户端发出的XML消息流的形式实现客户端之间进行消息交互的,而会展应用平台需要支持的消息类型有文本、表情、图片、邀约消息、接受邀约消息和拒绝邀约消息等
9、,如图1-2所示。图片文件、邀约等内容类消息的传输Openfire月及务器本身并不提供这些需要定制的服务,如何在会展应用平台中如何通过扩展Openfire服务器及其文件服务使其完全支持定制的即时通讯模块,这是一个本论文需要研究和解决的问题。图1-2 会展平台用户消息类型多样化其次,会展应用平台中消息收发可靠性保障需求,主要涉及用户消息收发送达率,整个即时通讯模块消息收发过程如下图1-3所示,一条消息XML从发送端发出,通讯服务器器接受并根据接收方是否在线决定是否转发此条VIL消息到接收端,接收端上线后成功接收此条消息,至此,一条消息己发送成功。图1-3 XMPP协议消息收发处理过程由于客户端网
10、络、服务端网络以及通信网络的不稳定性,导致消息包在收发过程中会出现丢包现象,即时通讯服务器Openfire对此问题的一个解决方案,提出了一种客户端之间消息回执的方式,确保消息发送,但是此方案没有考虑到客户端离线状态下的情况以及重发机制的搭建,而在会展应用平台中需要考虑离线问题以及需建立一个失败消息的重发机制,故XMPP协议提供的解决方案不适合在会展应用平台中直接使用。在此,本论文需要考虑如何利用和扩展XMPP提供的回执机制,使其适用于会展应用平台。最后,在会展应用平台中设计研发的服务端性能方面需要满足10万注册用户使用,需要满足1-2万用户的并发量,后期随着用户数量的上升,并发量也将进一步加大
11、,而即时通讯服务器Openfire对并发量的支持比较薄弱,用Tsung压力测试工具对Openfire进行测试如1-4所示,横坐标为测试时间,以秒为单位,纵坐标为用户数,红线表示某一时刻并发请求的用户数,而绿线表示在某时刻正常建立连接的用户数。当用户请求数达到4000左右时,后续请求的用户将无法正常连接。说明此时的这种环境下并发量只能正常连接4067个用户。而这个并发用户量无法满足会展应用平台大规模并发时的需求,故本论文也将考虑通过搭建即时通讯服务端集群的方式增加Openfire的并发用户量。图1-4 Openfire服务器并发量测试结果测试环境为:Openfire即时通讯服务器基本配置:操作系
12、统:CentOS6.4内核:Linux 2.6.32-358.23.2.e16.x86 64内存:3.7G处理器:Intel(R)Xeon(R)CPU E56402.67GHz测试工具:Tsung1.5.01.3主要工作及意义通过上述章节对会展应用平台中集成基于VIPP协议的即时通讯模块时应用现状分析以及对应用过程中遇到问题的说明,本文的工作内容主要包括:第一,通过即时通讯服务端的有效整合以及扩展XMPP协议消息类型,从而实现符合会展应用平台的个性化即时通讯服务,如不同类型消息的处理,包括图片消息和邀约消息等;第二,研究并建立一种有效的消息收发可靠性保障机制,确保消息收发处理的送达率;第三,搭
13、建服务器集群,提高通讯服务器端并发处理性能,并将该协议实现的即时通讯模块应用到会展应用平台中。通过对以上问题的研究,可根据会展平台需要进行定制和扩展收发消息类型,并且可以使即时通讯服务与业务应用服务和文件服务进行深度整合,从而更加高效的处理会展业务需求。同时,消息收发可靠性保障机制保障用户收发消息成功率,而服务端集群避免单台通讯服务器处理并发性能低下瓶颈,从而很大程度上提高了即时通讯模块的使用可靠性和稳定性。1.4本文组织本文各个章节的具体内容安排如下:第一章介绍了本文研究的背景,应用现状和存在的问题,以及说明了本文研究的主要工作和意义。第二章介绍了论文研究内容的相关工作,包括扩展消息类型以及
14、保障消息收发成功率的最新研究和应用成果,最后说明了提高通讯服务端性能的最新方案。第三章详细论述了基于XMPP协议的即时通讯模块应用问题研究,包括XML消息流的扩展,以及服务端功能整合的研究,详细论述了消息收发可靠性保障性机制的研究与建立。第四章详细论述了基于XMPP协议的即时通讯模块的应用和实现,以及通过相关开源技术搭建通讯服务器集群,实现服务器端并发性能的提升。第五章对会展应用平台中实现的IM模块关键技术进行相关的测试和验证,并对测试结果进行了相关分析,进一步验证了论文的研究成果。第六章对本文的主要工作内容进行了总结,指出了本文有待改进的地方并对后续工作和未来发展情况进行了相关说明。第二章相
15、关工作本章将对XMPP协议基本知识及其与本文研究相关内容进行一个概述,包括XMPP协议实现文件传输,消息的收发成功率以及Openfire通讯服务器扩展等相关知识进行概要说明。2.1即时通讯技术简介2.1.1即时通讯概念即时通讯(Instant Messaging,简称IM)是一组通讯技术,可以实现两个或多个参与用户通过网络实现输入文本信息的实时沟通,是通过网络实时传输文本的一种的在线会话技术。即时通讯可以实现用户间的高效率沟通,它允许发送消息的确认收据以及回复消息,在很多情况下,即时通讯添加了一些个性化的特点,使其变得更加流行,比如用户间可以实现图片、语音、视频文件的收发处理,也可以实现用户间的在线音视频交流等。即时通讯系统促进了用户间的沟通交流,是用户的日常生活工作得到了较大的便利。2.1.2即时通讯相关技术当前实现即时通讯的协议中技术架构主要有两种,一种是peer-to-peer模式,它是直接通过用户之间进行交互的,而另一种是client-sever模式。当前主要的实现即时通讯的协议有以下几种 : IMPP协议、PRIM协议、SIP(SIMPLE)协议以及XMPP协议,其中XMPP是使用最为广泛