《企业即时通信系统客户端的设计与实现论文fkop.docx》由会员分享,可在线阅读,更多相关《企业即时通信系统客户端的设计与实现论文fkop.docx(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、西安电子子科技大大学学士士学位论论文企业即时时通信系系统学院: 软件件学院 专业: 软件件工程 班级:姓名:导师:摘要随着网络络通信技技术的发发展,网网络已经经成为人人们获取取信息,交交流信息息以及管管理信息息的重要要途径。其中即即时通信信的出现现无疑是是网络通通信领域域的一场场革命,他使人人们能够够随时随随地的同同任何地地方的人人进行快快捷的交交流。如如今,网网络即时时通信已已经逐步步发展成成为应用用于各行行各业的的信息交交流工具具。本论文通通过设计计和实现现一款集集即时通通信与内内部组织织管理于于一体的的企业内内部即时时通信系系统,讨讨论并分分析在协协议的基基础上设设计并实实现一个个结构的
2、的即时通通信系统统的详细细过程。首首先,介介绍即时时通信系系统的现现状,其其次,分分析和设设计客户户端与服服务器端端之间的的通信协协议,为为上层的的数据包包交换以以及系统统功能实实现模块块提供规规范的数数据交流流格式。然然后,对对系统中中最重要要的部分分即数据据包模块块,进行行详细的的设计说说明以及及实现方方案的阐阐述,最最后,描描述即时时通信系系统整体体的系统统功能的的逻辑处处理流程程,以及及实现过过程。在当前这这个信息息时代,由于企业即时通信系统为公司提供的便捷的员工交流方式以及规范的公司组织管理功能,所以即时通信系统的设计与实现在各行各业中具有非常广泛的应用前景。关键词:即时通通信 企企
3、业应用用程序 , ,. . , ., . , 、. , . , . , .:目录摘要目录第一章 绪论课题背背景和意意义企业即即时通信信系统概念主要功功能主要应应用领域域企业即即时通信信系统现现状论文的的主要工工作和章章节安排排第二章 企业即即时通信信系统需需求分析析企业即即时通信信系统的的需求分分析企业即即时通信信系统的的用例说说明企业即即时通信信系统的的功能描描述第三章 通信模模块企业即即时通信信系统的的通信协协议数据收收发方式式的设计计和数据据包结构构的定义义通讯协协议数据据包在实实现过程程中的定定义本节小小结数据包包传输模模块的设设计与实实现套接字字的模型型选择和和多线程程的运用用数据包
4、包传输模模块的设设计数据包包传输模模块的实实现本节小小结第四章 业务逻逻辑模块块引言登陆登陆设设置登陆主界面面组织结结构群组列列表公告列列表点对点点通信发送信信息传输文文件群组会会议创建群群组邀请员员工加入入群组将员工工移除群群组群组聊聊天上传共共享文件件下载共共享文件件日常公公告管理理发布公公告删除公公告查看公公告评论论评论公公告工作邮邮件发送邮邮件邮件即即时提醒醒本章小小结第五章 总结与与展望全文总总结展望结束语致谢参考文献献附录第一章绪绪论1.1 课题背景景和意义义近年来,随随着的飞飞速发展展,计算算机网络络得到了了越来越越广泛的的应用,并并且已经经逐步进进入了各各行各业业。自迈迈入信息
5、息时代以以来,人人们对沟沟通交流流的需求求和依赖赖也越来来越强烈烈,各行行各业对对信息交交流的要要求也越越来越高高。如今今,通过过各种即即时通信信软件,人人们已经经可以随随时的与与远距离离甚至世世界各地地的人进进行实时时的聊天天交流,这这样的交交流给人人们带来了了极大的的便捷和和大量的的经济节节省。因因此,即即时通信信()在在人们的的生活工工作和学学习中得得到了更更广泛的的应用。目前,网网络上已已经有不不少即时时通信软软件在社社会公众众中流行行,像,腾腾讯,新新浪等,都都是国内内人们所所熟知的的知名流流行即时时通信软软件,其其技术方方面也都都处于国国际领先先水平。同同时,企企业内部部即时通通信
6、领域域,也涌涌现出了了一大批批的产品品,如腾腾讯的、汇汇讯的、北北京世纪纪奥通科科技有限限公司的的、上海海艾睦网网城科技技有限公公司的云云办公,移移动公司司的移动动企业飞飞信。本论文将将通过开开发一个个具体的的企业即即时通信信工具,以以现有的的各种技技术,结结合实际际的开发发过程讲讲解一些些开发所所需的基基本知识识,并讨讨论系统统中关键键环节的的设计策策略和最最终的解解决方案案。 1.2 企业即时时通信系系统1.2.1 概念,全称为为 ,中中文翻译译为企业业即时通通讯。企企业即时时通讯是是一个企企业级终终端服务务,一般般其帐号号为企业业拥有,由由企业注注册完成成后统一一分配给给员工。产产品功能
7、能上以即即时通讯讯为基础础,贯穿穿搭载多多种办公公应用,企企业成员员以及企企业间使使用网络络即时传传递文字字信息、档档案、语语音与视视频交流流,同时时企业可可通过企企业即时时通讯产产品完成成通知的的下达与与分发,目前,企企业即时时通讯已已呈现出出向集成成通讯、办办公管理理等综合合平台化化产品服服务方向向转变的的趋势。企企业即时时通讯产产品以是是否连接接互联网网作为划划分依据据,主要要分为局局域网型型企业即即时通讯讯产品和和互联网网型企业业即时通通讯产品品。企业即时时通讯主主要特征征为:1. 实现企业业内部员员工之间间的的即即时沟通通,这是是企业即即时通信信系统的的最主要要功能。2. 可以对企企
8、业组织织配置进进行管理理,这是是企业对对企业即即时通信信系统的的额外的的功能诉诉求。3. 满足企业业的办公公需求,例例如企业业公告功功能以及及员工之之间文档档资料的的交互等等。1.2.2 主要功能能企业即时时通信系系统以即即时通信信为核心心,集组组织管理理、即时时聊天、数数据交换换、群组组会议等等功能为为一体,为为企业内内部员工工提供即即时、快快捷的交交流方式式。企业即时时通信系系统的主主要功能能介绍如如下: 登陆:公公司统一一为每个个员工注注册账号号,员工工根据公公司提供供的账号号和密码码可以登登录系统统。 即时聊天天:公司司员工可可以实时时的与公公司其他他任一员员工进行行交流,员员工可以以
9、设置交交流时文文字的大大小、字字体、颜颜色等。 文件传输输:公司司员工可可以把本本机上的的文件(如如文档、图图片以及及其它应应用程序序等)发发送给其其他公司司员工。 群组会议议:员工工可以创创建群组组并邀请请其他员员工加入入群组,群群组成员员可以在在群组中中展开各各种会议议讨论,每每个群组组成员可可以设置置自己交交流所用用的文字字的大小小、字体体、颜色色等。 共享文件件:群组组成员可可以将本本机上的的文件(如如文档、图图片以及及其它应应用程序序等)共共享给其其它群组组成员,其其他群组组成员在在需要该该文件时时可直接接在群组组中下载载,无需需再找文文件持有有这拷贝贝。 浏览组织织信息结结构:公司
10、员员工可以以查看公公司的部部门组成成以及每每个部门门的人员员配置。 日常公告告管理:公司有有重要通通知时,可可以在公公告发布布页面发发布公司司公告,公公司员工工会及时时收到公公司公告告。员工工可以对对公司公公告自由由的进行行评论并并可以查查看其它它公司员员工对此此公告的的评论。1.2.3 主要应用用领域随着市场场的变化化,对企企业即时时通信系系统的要要求也在在变化。一个具有企业自己特色的集信息管理和即时通信为一体的内部应用软件,能够使一个企业或者团队更像一个整体,同时也能够给企业的管理和信息交流带来极大的便利,在一定程度上提高工作效率。1.2.4 企业即时时通信系系统现状状全称是,意意为企业业
11、即时通通讯。企业即即时通讯讯是自年国国内的诞诞生进入入了起步步阶段,在在经历了了十年的的发展时时期后,目目前的市市场上已已经是群群雄割据据,目前前市场上上已经有有一些比比较流行行的企业业即时通通信系统统,如腾腾讯的、汇汇讯的、北北京世纪纪奥通科科技有限限公司的的、上海海艾睦网网城科技技有限公公司的云云办公,移移动公司司的移动动企业飞飞信。企业即时时通信系系统从形形式上主主要分为为两类,一一类是需需要在企企业内部部部署服务务器的,如如腾讯公公司的、汇讯讯公司的,其中中文档归归类、整整理等功功能都需需要用到到企业提提供的服服务器来来进行存储储。另一类是是不需要要部署而而是基于于互联网网的,如如中国
12、移移动的企企业飞信信、互联联网办公公室的,通通过组建出一一个互联联互通的的办公环环境来实实现企业业即时通通讯的功能,同同时对用户户提供各各类办公公应用,如如聊天功功能、企企业邮箱箱、群组组会议等等。根据据权威调调研机构构的结果果反应国国内至少少的企业业监控甚甚至禁止止员工使使用,而而在国外外这种情情况也不不乐观,英国企业禁止员工使用、雅虎通在内的公众即时通信软件。1.3 论文的主主要工作作和章节节安排本论文旨旨在设计计一个面面向企业业内部的的功能实实用、性性能良好好的即时时通信系系统,并并对其中中关键模模块做详详细的分分析和实实现的说说明。在在系统的的设计和和实现中中,要突突出系统统的模块块化
13、,各各模块间间相对独独立,通通过模块块间的接接口交互互工作,使使整个系系统层次次、模块块清晰。在在数据传传输方面面,要注注意数据据的封装装,使数数据尽可可能结构构化,保保持良好好的一致致性。根据上述述要求,论论文中详详细阐述述了系统统的各个个关键模模块的设设计方案案和实现现方法,主主要工作作如下:1) 对系统的的需求说说明做出出详细描描述以指指导后续续的开发发。2) 对系统所所需要的的通信协协议作出出详细的的设计,并并给出实实现方案案。3) 对系统中中数据包包传输模模块的设设计做详详细的说说明,阐阐述数据据包传输输模块在在系统中中的工作作流程以以及该模模块的实实现方案案。4) 结合系统统整体结
14、结构,详详细给出出系统各个个功能的的实现,并并展示系系统功能能实现后后的运行行结果。第2章 第二章 企业即即时通信信系统需需求分析析2.1 企业即时时通信系系统的需需求分析析员工考勤勤管理系系统是根根据日常常工需要要设立登登陆、即即时聊天天、文件件传输、群群组会议议、文件件共享、公公告管理理、评论论公告等等功能模模块。本本系统的的主要目目的就是是通过相相关技术术,以即即时通信信为核心心,集组组织管理理、即时时聊天、数数据交换换、群组组会议等等功能为为一体,为为企业内内部员工工提供即即时、快快捷的交交流方式式,提高高公司正正常的工工作效率率。本系统主主要由五五大功能能,仅从从业务层层面陈述述本软
15、件件产品所所应具有有的主要要功能,在在描述功功能时应应该针对对每一项项需求准准确地描描述其各各项规格格说明。本本产品拟拟适用于于中小型型公司和和企业内内部办公公使用,对对于系统统维护人人员,要要求熟悉悉计算机机并且有有一定的的编程基基础。本本系统可可运行于于及以上上版本的的操作系系统上,使使用平台台,数据据库采用用,服务务器需要要安装及及。2.2 企业即时时通信系系统的用用例说明明本系统的的用例图图如图用例图图所示。用用户在登登陆系统统后可以以进行其其它操作作。主要要是对系系统的功功能模块块在不同同的需求求下进行行使用。主要有个个功能模模块,登登陆、点点对点通通信、群群组会议议、组织织结构、日
16、日常公告告管理、内内部邮件件。而每每个功能能模块又又分为若若干子模模块。2.3 企业即时时通信系系统的功功能描述述接下来先先对每个个系统功功能进行行简单的的描述,通通过这个个步骤先先确定到到底要实实现什么么功能,每每个功能能点要完完成什么么任务,这这可以为为后续的的编码实实现提供供一个指指导。各各系统功功能的详详细描述述如下所示。1) 登陆u 登陆设置置设置连接接服务器器所需的的参数。参参数有服服务器地地址、服服务器监监听的端端口号。u 登陆图用例图图将用户名名和密码码发送至至服务器器进行验验证,根根据服务务器发回回的验证证结果作作出不同同反应。如如果验证证成功则则显示主主界面,如如果验证证失
17、败则则提示用用户验证证失败。2) 主界面u 组织结构构将服务器器返回的的组织结结构信息息只是给给用户,用用户可以以双击打打开与公公司员工工呃聊天天窗口。u 群组列表表将服务器器返回的的群组列列表展示示给用户户,用户户双击任任一群组组节点可可以打开开群组回回话框,此此处还提提供其它它群组操操作,包包括创建建群组、查查看群组组信息、解解散群组组、退出出群组、刷刷新群组组列表。u 公告列表表将服务器器返回的的公司公公告展示示给用户户,用户户双击任任一公告告可以打打开对于于公告的的评论页页面,此此处还提提供公告告的其它它操作,如如发布公公告、删删除公告告。3) 点对点聊聊天u 发送信息息将消息发发送给
18、对对方,用用户可以以设置消消息的字字体、大大小、颜颜色。u 传输文件件客户端之之间可以以相互传传输文件件。一个个客户端端点击发发送文件件按钮选选择要发发送的文文件,对对方同意意接收后后开始传传输文件件。4) 群组会议议u 创建群组组员工可以以根据需需要创建建群组,并并同时邀邀请其他他员工加加入群组组。u 邀请员工工加入群群组群组内成成员可以以邀请其其他员工工加入已已有群组组。u 将员工移移除群组组群组创建建者即群群主可以以将任一一群组成成员移除除群组。u 群组聊天天群组成员员可以发发送群组组消息,群群组内每每一个成成员都会会收到消消息,用用户可以以设置消消息的字字体、大大小、颜颜色。u 上传共
19、享享文件群组成员员可以将将一些重重要文件件发布在在群共享享里面供供其他群群组成员员下载。u 下载共享享文件群组成员员可以讲讲群组内内的共享享文件下下载到本本地。5) 邮件功能能u 发送邮件件员工可以以使用公公司内部部邮箱向向其它员员工发送送邮件。u 邮件即时时提醒但有新邮邮件到达达时系统统会即时时提示用用户进行行阅读。6) 组织结构构查看员工可以以查看公公司的部部门组成成以及每每个部门门的人员员配置。7) 日常公告告管理u 发布公告告公司有重重要通知知时,可可以在公公告发布布页面发发布公司司公告,公公司员工工会及时时收到公公司公告告。u 删除公告告公司用户户可以将将过期的的、不需需要的公公告删
20、除除。u 查看公告告评论员工双击击任一公公司公告告,可以以打开相相关公告告的评论论页面,可可以查看看其它员员工对次次公告发发表的评评论。u 评论公告告员工可以以对公司司发布的的公告自自由的进进行评论论,员工工的评论论可以实实时的被被其它员员工获取取。第3章 第三章 通信模块块3.1 企业即时时通信系系统的通通信协议议本模块在在整个系系统设计计中是非非常关键键的一个个模块,它它处于最最底层,不不涉及任任何数据据包传输输,也不不涉及任任何业务务逻辑处处理,但但它的实实现的好好坏直接接决定了了上层的的数据包包传输模模块以及及业务处处理模块块的成功功与否。3.1.1 数据收发发方式的的设计和和数据包包
21、结构的的定义3.1.1.1 数据收发发方式的的设计在企业及及时通信信系统中中,所有有功能的的实现都都必须依依赖客户户端与服服务端以以及客户户端与客客户端的的数据交交换。由由于客户户端和服服务端传传输的数数据格式式各种各各样,为为了在收收到数据据后能够够辨别对对方要干干什么,就就需要规规定一个个客户端端和服务务端同时时遵守的的数据传传输格式式,即协协议,客客户端和和服务端端传输数数据必须须按照既既定的协协议传输输,否则则视为数数据错误误。 按照一般般的惯例例,要将将交换的的数据封封装成数数据包的的形式进进行传输输。客户户端可以以向服务务器以及及在线客客户端发发送数据据包,而而服务端端则可以以向所
22、有有在线客客户端发发送数据据包。所所有操作作都以“请请求应答答”的模模式来进进行。客户端与与服务端端的数据据收发方方式为客客户端向向服务端端发送请请求包,服服务端对对请求进进行处理理(比如如查询数数据库获获取信息息等),然后后将处理理结果作作为应答答包返回回给客户户端。过过程如图图所示。客户端与与客户端端的的数数据收发发方式为为客户端端向其它它客户端端发送请请求包,其其它客户户端收到到请求包包后获取取用户的的响应,然然后将用用户的响响应作为为应答包包返回给给请求包包发送方方。过程程如图所所示。3.1.1.2 通信协议议中数据据包结构构的定义义由于客户户端之间间、客户户端与服服务端之之间传输输的
23、数据据是各种种各样的的,所以以必须将将种类繁繁多的数数据尽可可能的封封装到相相同或者者相似的的结构中中,否则则在编码码实现时时将会带带来极大大的麻烦烦和极繁繁琐的工工作。同同时由于于每次数数据传输输的数据据长度不不同,所所以又要要求定义义的协议议有很强强的扩展展型,能能够满足足各种类类型的数数据传输输。图.客户户端与服服务端请请求应答答顺序图图图客户端端与客户户端请求求应答顺顺序图综上所述述,设计计出了这这样的协协议格式式,将数数据包分分为包头头和包体体两个部部分,包包头中包包含了操操作标示示以及跟跟随的参参数个数数,包体体中包含含了所有有所需的的参数,包包体中的的参数个个数与包包头中指指明的
24、参参数个数数相同。数据包结构如图所示。这样的设设计有以以下两点点好处:1) 在收到数数据包后后,首先先可以根根据包头头中的操操作标示示识别到到底要进进行何种种数据交交换,然然后可以以根据包包头中指指明的参参数个数数从包体体中取出出操作所所附带的的参数。这这样就将将种类繁繁多的操操作以及及数据封封装到了了一个相相同的结结构中。2) 对于不同同的操作作,传输输的参数数个数不不同,这这时只需需设置包包头中的的操作标标示以及及参数个个数,然然后将所所有传输输填装到到包体中中。这样样就很好好的支持持了不同同操作对对数据长长度以及及参数个个数的要要求,体体现了很很好的扩扩展性。图 通信信协议数数据包结结构
25、示意意图3.1.2 通讯协议议数据包包在实现现过程中中的定义义3.1.2.1 相关技术术讲解可扩展标标记语言言 (, ) 【1】,用来来标记文文件以使使文件能能够具有有结构性性的一种种标记语语言,可可以用来来定义数数据类型型、标记记数据等等,它是允许许用户定定义自己己的标记记语言的的一种源源语言。由于的各各种优点点,他在在各种应用用程序中读读写数据据都非常常,使很快成成为唯一一的用来来数据交交换的公公共语言言,虽然然不同的的应用软软件也支支持其它它的数据据交换格格式,但但不久之之后他们们都将支支持,那那就意味味着程序序可以更更容易的的与以及及其他平平台下产产生的信信息结合合,然后后可以很很容易
26、加加载数据据到程序序中并分分析他,并并以格式式输出结结果。正是由于于的这些些优点以以及考虑虑到协议议的格式式,所以以选择了了以下方方式来在在编码中中实现协协议。数数据包在在网络上上以符合合协议格格式的串串来传输输。3.1.2.2 数据包结结构的定定义如图 所所示,数数据包的的包头非非常重要要,其中中它的操操作标示示标示了了此数据据包是做做什么用用的,而而包头中中的参数数个数直直接影响响对包体体的解析析。能否否正确解解析数据据包,将将数据包包转化为为有用的的信息首首先就取取决于对对包头的的正确解解析。如图 所所示,数数据包的的包体也也是非常常重要的的一部分分,它包包含了操操作所需需的所有有参数,
27、在在解析包包头得到到操作标标识后,对对包体的的解析直直接决定定了后续续操作是是否能够够正常进进行。由上所述述对数据据包的正正确解析析是客户户端与客客户端、客客户端与与服务端端之间正正确交流流的前提提。结合合定好的的协议在在代码中中如下实实现传输输协议。一一个完整整的、正正确的、可可被客户户端和服服务端识识别的数数据包应应该是符符合以下下格式的的串:其中属性性对应于于数据包包包头中中的操作作标识,各各操作标标识以及及对应的的操作描描述如表表 所示示。属性性对应于于数据包包包头中中的参数数个数,用用于解析析后续包包体中的的各个参参数,值值可以为为。至()对应应于数据据包的包包体,里里面依次次为操作
28、作所需的的个参数数。由于数据据交换中中数据种种类繁多多,在本本论文无无法将全全部定义义一一列列出,这这里仅通通过登陆陆验证的的协议数数据包定定义来阐阐释数据据包具体体的定义义方式,其其他操作作相关的的数据包包包体定定义与之之类似。客户端连连接到服服务端后后将用户户名密码码发送至至服务端端进行验验证,而而服务端端则将验验证结果果返回给给客户端端。下面面介绍在在代码中中如何实实现定义义请求包包和应答答包。u 登录验证证请求包包的定义义: 参数二二其中 对应应于与包包头,的的属性为为标识要要进行的的操作为为验证密密码,而而 的属属性为则则标识后后面跟有有两个参参数。账号 密密码对对应于包包体,分分别
29、为第第一个参参数和第第二个参参数u 登录验证证应答包包的定义义:参数一一其中 对应应于包头头,的属属性为标标识返回回的是验验证结果果,而 的属性性为则标标识后面面跟有一一个参数数。结结果对对应于包包体,标标识验证证结果,如如果是标标识验证证成功,如如果是则则标识验验证失败败。表. 操操作标识识以及对对应的描描述标识名传输方向向描述客服端到到服务端端客户端向向服务端端发起认认证,参参数包括括账号、密密码服务端到到客户端端服务端向向客户端端返回认认证结果果,参数数包括认认证结果果,代表表失败,代表成功客服端到到客户端端客户端向向服务端端发送本本机信息息,参数数包括监监听的端端口号服务端到到客户端端
30、服务端向向客户端端传输部部门信息息,参数数包括部部门编号号以及部部门名称称标识名传输方向向描述客服端到到客户端端客户端向向其它客客户端发发送聊天天消息,参数包括用户以及消息内容客服端到到客户端端客户端向向其它客客户端发发送聊天天所用的的字体信信息,参参数包括括字体、字字号、颜颜色客服端到到客户端端客户端向向其它客客户端发发起文件件传输请请求,参参数包括括文件名名、文件件大小、传传输文件件所用的的端口号号客服端到到服务端端客户端向向服务端端发起请请求,获获取自己己的群组组列表客服端到到服务端端客户端向向服务端端发起请请求,获获取群组组成员,参数包括群组客服端到到服务端端客户端向向服务器器发起创创
31、建群组组请求,参数包括群组名称、群组描述、所邀请的群组成员等客服端到到服务端端客户端发发送的群群组消息息,有服服务端进进行转发发,参数数包括发发送者、字字体、字字号、字字体大小小、消息息内容客服端到到服务端端客户端向向服务器器发送邀邀请其他他员工加加入群组组请求,参数包括群组、以及邀请的人员列表客服端到到服务端端群组创建建者向服服务端发发送移除除群组成成员请求求,参数数包括群群组、要要移除的的群组成成员客服端到到服务端端群组成员员向服务务端发送送退出群群组请求求,参数数包括要要退出的的群组客服端到到服务端端服务端到到客户端端群组创建建者向服服务端发发送解散散群组请请求,服服务端向向群组成成员发
32、送送群组解解散通知知,参数数包括群群组标识名传输方向向描述客服端到到服务端端服务端到到客户端端群组创建建者向服服务端发发送群组组说明更更新通知知,服务务端向群群组成员员发送群群组说明明更新通通知,参参数包括括群组、群群组说明明客服端到到服务端端群组成员员向服务务端发送送上传共共享文件件请求,参数包括群组、文件名、文件大小、传输文件所用的端口号客服端到到服务端端群组成员员向服务务端发送送下载共共享文件件请求,参参数包括括群组、文文件名、传传输文件件所用的的端口号号客服端到到服务端端群组成员员向服务务端发送送获取群群共享文文件列表表请求,参参数包括括群组客服端到到服务端端创建者通通知服务务端删除除
33、群共享享文件,参参数包括括群、要要删除的的文件名名客服端到到服务端端服务端到到客户端端客户端向向服务端端传输发发布的评评论,服服务端向向客户端端发送员员工对某某一公告告的评论论。参数数包括公公告、发发布者、评评论内容容客服端到到服务端端客户端向向服务端端发送发发布公告告请求,参参数包括括公告内内容客服端到到服务端端客户端向向服务端端发送获获取公告告请求客服端到到服务端端客户端向向服务端端发送删删除公告告请求,参参数包括括要删除除的公告告客服端到到服务端端客户端向向服务端端发送获获取公告告评论请请求,参参数包括括要获取取评论的的公告服务端到到客户端端服务端向向客户端端发送员员工基本本信息,参数包
34、括员工、昵称、性别、在线状态等服务端到到客户端端服务端通通知在线线用户员员工上线线信息,包包括上线线员工的的、通信信所需的的端口号号服务端到到客户端端服务端通通知在线线用户员员工下线线信息标识名传输方向向描述服务端到到客户端端服务端通通知用户户被移出出群组信信息,包包括群组组服务端到到客户端端服务端向向客户端端发送公公司公告告,参数数包括发发布者、时时间、公公告内容容服务端到到客户端端服务端向向群组成成员发送送群共享享文件列列表,参参数包括括群组、文文件名、文文件大小小3.1.3 本节小结结本节主要要介绍了了本系统统客户端端与客户户端之间间、客户户端与服服务端之之间的数数据传输输办法,详详细设
35、计计出了数数据在网网络上传传输的通通信协议议。并详详细讲解解的通信信协议数数据包结结构在实实现中的的定义。3.2 数据包传传输模块块的设计计与实现现本模块在在整个系系统设计计中是非非常重要要的一个个模块,在在企业即即时通信信系统中中,所有有功能的的实现都都必须依依赖客户户端与服服务端以以及客户户端与客客户端的的数据交交换。而而能否可可靠、快快速的进进行数据据交换直直接决定定了其它它后续业业务处理理模块的的正常运运行,而而本模块块就承担担了数据据包交换换这个关关键任务务,它确确保其它它模块要要处理的的数据是是一个个个完整的的数据包包,此模模块成功功实现后后,其它它模块将将完全从从繁琐的的数据包包
36、交换中中解放出出来,将将可以完完全关注注于与用用户的交交互以及及其它业业务的实实现。3.2.1 套接字的的模型选选择和多多线程的的运用3.2.1.1 套接字模模型选择择在利用进进行编程程时,有有以下几几个概念念需要了了解,同同步、异异步、阻阻塞、非非阻塞【2】 。同步、异异步属于于通信模模式,而而阻塞、非非阻塞属属于套接接字模式式。 同步方式式通信的同同步是指指客户端端在发送送请求后后,需要要在得到到服务端端的回应应后才可可以发送送下次请请求。 异步方式式与同步方方式相反反,在异异步方式式下,客客户端再再发送请请求后,不不必等待待服务端端做出回回应即可可以发送送下次请请求。 阻塞阻塞套接接字是
37、指指在调用用某一套套接字的的网络调调用时,如如读取数数据、写写入数据据等,所所调用的的函数只只有在得得到结果果后才会会返回,在在得到调调用结果果前,该该调用所所在的线线程会挂挂起,该该套接字字会阻塞塞在该网网络调用用上,直直到有数数据到来来或操作作完成。 非阻塞同样,与与阻塞套套接字不不同的是是,非阻阻塞套接接字在进进行某一一网络调调用时,不不论调用用能否立立刻完成成,它都都会直接接返回,因因此对非非阻塞套套接字的的网络调调用不会会将线程程挂起。在本系统统开发中中,如果果采用一一般的同同步阻塞塞套接字字,当在在发起一一个不能能立刻完完成的网网络调用用时,由由于阻塞塞套接字字的特性性,会将将发起
38、套套接字网网络调用用的线程程挂起,直直接的结结果就是是导致主主线程挂挂起,最最后导致致这个应应用程序序阻塞,界界面无响响应。所所以本系系统开发发中采用用了异步步非阻塞塞套接字字。而在用进进行网络络编程【3】 自学手册,机械工业出版社,2007;时时,由于于对阻塞塞和非阻阻塞套接接字机制制的封装装,其中中、中的、等方法法对套接接字的非非阻塞操操作提供供了很好好地支持持,因此此我们直直接采用用命名空空间命名名空间下下的、等进行行代码编编写。3.2.1.2 多线程技技术的运运用正如人可可以同时时思考、听听歌、走走路,汽汽车可以以同时转转弯、播播放音乐乐、加速速一样,计计算机也也可以同同时进行行许多工
39、工作,这这就是多多线程的的思想。多线程的的好处是是能使多多个线程程在应用用程序中中同时运运行,这这样就可可以使多多个工作作并发的的进行,大大大的提提高了程程序处理理数据的的速度。例例如在进进行数据据交换时时,如果果数据交交换比较较耗时,那那就可以以开启一一个线程程在后台台专门负负责数据据交换,而而这时候候主线程程还可以以同时响响应用户户的其它它操作,这这样也大大大的提提高了响响应速度度。综上所述述,本系系统在开开发时充充分的利利用了多多线程的的诸多优优点,对对各种耗耗时操作作都放在在了单独独的线程程中进行行处理。例例如在进进行文件件传输时时,由于于文件传传输是个个非常耗耗时的工工作,于于是专门
40、门开启一一个线程程进行文文件传输输。这样样即可以以使用户户在文件件传输时时进行其其它操作作,例如如聊天、发发布公告告、评论论公告等等,又可可以避免免在文件件传输时时将主线线程阻塞塞导致界界面无响响应,程程序崩溃溃。在下进行行多线程程开发【4】时时,在的的基础类类库的命命名空间间中,提提供了大大量的类类和接口口支持多多线程程程序设计计所需要要实现的的功能,包包括线程程的创建建、停止止、同步步等。在在本系统统开发中中就用命命名空间间中的类类进行多多线程程程序开发发。3.2.2 数据包传传输模块块的设计计3.2.2.1 数据包传传输面临临的一些些问题在使用协协议【5】的套接字字编程的的非阻塞塞操作中
41、中,当你你发起一一个调用用时,调调用函数数会直接接返回,当当异步调调用完成成时,会会通知你你设好的的回调函函数进行行处理。当当你的回回调函数数从缓冲冲区读取取数据进进行处理理时就会会遇到一一个问题题,如果果对方多多次数据据包发送送时间非非常接近近,在你你读取数数据包时时数据缓缓冲区中中就会存存在多个个数据包包,而由于于不同的的数据包包长度不不一样,当当你读取取时你就就无法准准确的读读取一个个数据包包,你有有可能读读取多个个数据包包或者读读取到不不完整的的数据包包,这时时候就需需要某种种机制来来确保能能够将缓缓冲区中中的数据据解析成成一条条条完整的的协议。3.2.2.2 数据包缓缓冲区的的设计与
42、与实现为了能够够正确的的进行通通信,并并且解决决上一节节提到的的问题,将将数据包包缓冲区区设计如如下,在在系统中中创建一一个数据据缓冲区区存储将将要发送送的数据据或者接接收到的的数据,在缓冲区中所以数据以字节流的形式存储。数据缓冲区的大小为,其中前字节存储数据,第字节存储缓冲区中原有数据长度。每次收到数据后调用的方法从数据包缓冲区中解析得到协议数组,并将剩余的数据保存在数据包缓冲区中。在的中用用到了一一些对于于正则表表达式【6】 xxdeerchaox/tutorials/regex/regex.htm的的支持,其中首先定义了一个符合通信协议格式的匹配规则,用来对输入的字符串进行匹配,存储匹配
43、得到的协议列表,由于可能读取到多个数据包,所以也可能匹配得到多条协议。匹配结束后将中的剩余部分移到最前部,并将匹配得到的协议列表返回。3.2.3 数据包传传输模块块的实现现3.2.3.1 客户端与与服务端端的数据据包传输输对于客户户端与服服务端的的通信,客户端端启动后后先调用方法法做一些些初始化化,然后在方法中中投送一一个异步步接受操操作(),异步步操作直直接返回回,在异异步接受受操作完完成后,会调调用方法法,在中中,先调调用的方法对对数据包包缓冲区区中的数数据进行行解析。解解析完毕毕后继续续投送下下一次异异步接受受操作(),然后再将解析得到的每个数据包委托给主线程进行处理,处理过程在主线程的
44、方法中。图描述了了客户端端与服务务端通信信模块的的工作流流程。初始化尝试连接服务器获取错误信息,向业务逻辑层反馈开始监听网络事件()调用读响应事件()将消息重新封装,交给业务逻辑层进行处理。()调用连接断开响应事件连接失败有数据发来与服务器断开连接图 客户户端与服服务端通通信模块块的工作作流程其中读响响应事件件的具体体工作流流程则需需要更详详细的说说明,下下面结合合图进行具具体的讲讲解。在读响应应事件中中,在通通过的得到一一个个完完整的数数据包后后,会根根据包头头中的信信息,将将包体中中的信息息进行预预处理,然然后将预预处理得得到的信信息(要要进行的的操作、参参数)重重新封装装以便于于交给业业
45、务逻辑辑层进行行处理。进入读响应事件读取缓冲区中的数据数据是否完整否对数据重新封装()是调用数据处理函数图 读响响应事件件工作流流程3.2.3.2 客户端与与客户端端的数据据包传输输对于客户户端于客客户端的的通信,客户端于客户端的通信采用协议,客户端启动后,首先调用方法,在方法中同样先投送一个异步接受操作(),在异步接受操作完成后,会调用方法,由于在使用通信的套接字中不会出现多个数据包叠加在一起的情况,所以在对收到的数据包进行处理时,直接开启新线程进行处理,并投送下一次异步接受操作。线程对数据包的处理工程在方法中。图描述了了客户端端与客户户端通信信模块的的工作流流程。初始化监听网络事件()调用读响应事件()有数据到来将消息重新封装,交给业务逻辑层处理。()调用客户端退出响应事件客户端退出图 客户户端与客客户端通通信模块块的工作作流程3.2.4 本节小结结本节详细细讲解了了数据包包传输模模块的设设计与编编码实现现,本模模块的实实现为其其它模块块提供了了可靠、快捷的的数据包包传输保保障。第4章 第四章业业务逻辑辑模块4.1 引言本章节主主要讲解解系统功功能的详详细实现现,本章章节的内内容是整整个系统统开发中中编码最最为繁琐琐、耗时时最长的的一部分分。评价价一个即即时聊天天系统是是否成功功,最终终还是要要看用户户的体验验、评价价,而决