即时信息沟通软件的分析、设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
即时信息沟通软件的分析、设计与实现
本文针对即时信息沟通软件的实现方式进行分析与研究,在现有软件各种功能的基础上去伪存真,保留了即时信息沟通软件的主要功能和信息即时沟通的特点,开发出一款适合于企业应用的即时信息沟通软件。
本软件采用通用的C/S结构,因为采用了纯C++开发,软件运行不再依赖于操作系统,可以编译后运行在Linux、Windows等环境下,数据库采用Mysql数据库支持,开发环境采用各种开源软件,在缩减成本的同时保证了软件的运行。
本软件不仅实现了端对端消息传输,通过简单的数据库设计,同时实现了群消息的发送与接收,以及文本消息中包含截图内容的传输,方便软件使用者消息沟通的多样性。
同时采用离线消息储存功能,保证用户在未登录时也能收到消息。
通过运行、测试与分析,该软件运行较为稳定、可靠,具有一定实用价值。
标签:即时信息沟通;功能设计;开发环境;客户端;服务器端;数据库
Abstract:this article studies and analysis the implementation of instant messaging software. Based on the existing software functions,the study retains the main functions of instant messaging software and the characteristics of instant messaging,develops a real-time messaging software suitable for enterprise applications.
This software adopts the general C/S structure,because it is developed with pure C++,the software doesn’t run on the operating system,can be compiled and run in Linux,Windows and other environments,the database uses Mysql database support,the development environment uses various open source software,in order to reduce costs while ensuring the operation of the software.This software not only realizes the end-to-end message transmission,but also realizes the sending and receiving of group messages and the transmission of screenshots in text messages through a simple database design. At the same time,offline message storage function is adopted to ensure that users can receive messages when they haven’t logged in. Through running,testing and analysis,the software runs more stable and reliable,and has practical value.
Key Words:Instant messaging;function design;development environment;client;server side;database
一、即时信息沟通软件的市场分析
1、目前现状
随着网络的普及,信息的沟通与交流更显重要。
目前市面上各种即时聊天软件非常多,功能也五花八门。
有专门做信息沟通的,有携带语音沟通功能的,也有实现视频聊天的。
这些软件极大丰富了即时聊天软件的发展,方便了大多数网
友的使用,给企业内部人员沟通也带来了极大便利。
但是商業性软件也有个极大地限制性,那就是商业化。
当软件使用人员达到一定范围,往往这些软件开发商便会拓展业务范围,美其名曰方便用户使用,在即时聊天软件上就会附加许多使用者或许永远都用不到的功能,或者附加许多游戏、视频等,更有甚者会捆绑许多非法软件、恶意网站、各种广告等等,让使用者不厌其烦,同时也造成了企业网络安全风险。
而这些却正是企业内部使用者所不需要、不能使用甚至要极力防御的。
再者,所有信息沟通软件都需要登录服务器,所有沟通的即时信息都会通过服务器转发,使得信息保密性不强。
这就造成一种使用上的不方便,使目前市面上流行的即时聊天软件都不适应企业内部人员的沟通与交流,造成了一种表面上的繁荣,看似即时信息沟通软件种类繁多,适用大型企业内部人员使用的恰恰没有。
2、功能分析
目前来说,即时信息沟通软件开发技术都已经相对比较成熟,大部分使用的都是C/S技术,开发环境则五花八门,易语言、VB、VC等等各种语言都有,针对中小企业的数据库比如Mysql等也经常被列为服务器端登陆和信息保存所用数据库。
分析这些软件的基本功能,主要有如下几点:
1、用户登陆与环境设置、好友信息等的读取;
2、文本类消息的发送与接收;
3、文件的发送、接收与保存;
4、聊天记录的保存、查询、删除等;
5、聊天群的创建、删除、人员添加与删除、群内名称修改等;
6、群聊天记录的保存、查询、删除等;
7、群文件共享功能,群文件的发布、删除、修改等;8、其他功能,诸如音频、视频信息沟通等。
除了这些基本功能外,大部分即时信息沟通软件开发商都扩展了其他功能,比如游戏、音乐,还有比如QQ之类的甚至扩展了业务范围,不再局限在即时信息沟通这方面,已经扩展到网络游戏、购物、邮件、教育等等各个方面,具体不一一列述。
3、企业级即时信息沟通软件功能设计
作为企业内部人员沟通交流的工具,主要功能应该重点放在信息沟通与交流,在保证信息安全性的同时适应企业内部人员的业务沟通与交流,实现邮件不
容易实现的信息沟通的及时性、完整性与安全性,以此为标准设计企业级即时信息交流平台,在企业内部设立专用服务器作为沟通交流中转,保障信息不泄露。
二、软件开发环境构建
目前国内比较流行的C/S结构软件开发,服务器端有两种选择,一种是基于Windows环境下,服务器是Windows server系列。
好处是图形界面,操作简便,直观性强。
但是与数据库配合方面,从数据库运行效率和信息处理速度上看,要差很多。
另一种是采用Linux作为服务器端,在相同硬件环境下,Linux的运行效率显然比windows系列要强很多。
本文采用Linux作为服务器端,配合采用Mysql数据库。
1、Linux与Windows服务器的比较
相较Windows系列服务器,Linux具有非常多的优点。
Linux事实上是Unix 的一种版本,对多用户操作系统来说,Unix是最流行的操作系统。
而且Linux 是免费开源软件,其安全性、稳定性备受系统运维人员和IT管理员的推崇。
曾有相关机构在基本安全、网络安全和协议,应用协议、发布与操作、确信度、可信计算、开放标准等七个方面,针对Linux和Windows做过比较,最终的定性结论是:目前为止,Linux提供了相对于Windows更好的安全性能,只有一个方面例外(确信度)。
2、Mysql数据库
关于Mysql与Linux之间的关系:Linux下可以下载Mysql源码进行重新编译,加以优化以适应当前电脑,这一点是Windows无法做到的。
另一方面,选用Mysql的原因是本文是选择简单化即时信息沟通軟件,适用于企业内部人员交流的工具,对数据库方面要求比较简单。
而作为最流行的关系型数据库管理系统的Mysql,可以处理拥有上千万条记录,处理速度快,足以满足需求。
Mysql是开源软件,由瑞典MySQL AB 公司开发,目前属于Oracle 公司。
可以在官方网站下载。
3、MinGW编译器
MinGW的全程是Mininalist GNU for Windows,是个精简的Windows平台C/C++、ADA及Fortran编译器。
相比较其他编译器而言,MinGW更精简,使用较为方便。
MinGW提供了一套完整的开源编译工具集,适应Windows平台应用开发,不依赖任何第三方运行库。
4、Notepad++编辑器
Notepad++是Windows操作系统下的一套文本编辑器,有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。
Notepad++功能强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。
Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
Notepad++是免费软件,可以免费使用,自带中文,支持众多计算机程序语言。
三、软件功能设计
本系统为企业专用即时信息沟通软件,目的是方便企业内部人员互相沟通信息、及时反馈事务处理结果等,着重点放在文字类信息和文件等的传递。
整体分为服务器端、客户端两部分应用程序,服务器端负责管理客户端登陆/退出、消息备份等,客户端之间自由通信,可选择是否备份消息到服务器。
服务器与客户端、客户端与客户端之间通过TCP协议进行通讯。
1、服务器端功能设计
服务器端应用程序运行在服务器上,必须要实现的功能主要有如下几部分:
1、用户注册管理
2、用户登陆/退出管理;
3、登录用户消息管理;
4、私聊信息/群消息推送管理;
5、消息记录管理;
2、客户端功能设计
客户端软件运行在用户各自的电脑,一般为Windows环境下,所以该软件目前仅开发了Windows版本。
因为直接面对用户,所以必须考虑直观性、易用性、界面简洁,使用方便。
所有复杂功能均在后台实现,占用系统开销小。
必须要实现的功能主要有如下方面:
1、用户注册;实现用户在服务器端的注册。
2、登陆/退出管理;建立/退出与服务器的连接,显示登录成功信息。
3、离线私聊信息/群消息获取;登陆后接收/发送各种离线消息。
4、私聊信息/群消息发送与接收;处理各种消息,判断消息类型并处理。
5、文件发送与接收;群共享文件/好友发送文件的接收与保存。
6、消息定时刷新;在没有任何动作的时候定时发送接收消息请求,实时刷新消息记录。
7、界面显示功能;显示好友/群列表、好友在线/离线状态、显示发送、接收到的消息等。
3、数据库支持
数据是程序的核心,对于本软件来说更是如此。
要保存离线数据,确保消息发送到接收者,这是实现安全完整传输消息的基础。
当用户处于离线状态时,其他用户发送来的消息暂存于服务器,使得用户再次登录时不会漏掉所有信息。
消息暂存服务器的数据库中,利用数据库的安全管理程序可以确保消息的安全、完整、不被修改,并且确保消息不会泄露。
四、功能实现
代码编写采用notepad++,一款非常适合编写计算机程序代码的软件。
该软件不仅有语法高亮显示,也有语法折叠功能,并且支持宏和功能扩充的外挂模块。
本软件分为服务器端和客户端两部分,代码实现需求各不相同。
服务器端主要实现客户登陆、在线消息转发、离线消息储存及转发、登陆客户管理、群管理、群消息管理等功能,用于对客户端各种消息进行接收并处理,需要监听服务器端口并能同时响应多客户端连接请求。
客户端需要实现用户注册界面、用户登录、客户端主窗口、聊天窗口管理、离线消息接收、历史消息管理、好友添加删除及管理、群加入退出管理、用户退出等主要功能,用于处理用户登录后的所有操作。
1、服务器端设计
根据对服务器端功能划分,软件启动后即处于监听状态,当监听到有客户端连接请求时,服务器进入相应处理程序。
为避免消息溢出漏洞,必须要验证每个消息包大小。
验证消息包的过程不仅要在客户端实现,服务器端也要同时验证,避免因消息包数据量太大导致内存溢出。
服务器端是一对多服务,必须同时能够对多个连接进行响应,还需要设定响应时间,及时删除假死链接,避免拒绝服务攻击。
服务器端跟客户端相互独立,启动服务器后,服务器等待客户端与之相连,并实现相应功能:从数据库中读取/存入用户信息、从数据库中获取该用户的离线信息/设置信息等,初始化该用户登录信息,对用户发送信息进行相应处理。
2、客户端设计
客户端主要功能是以直观方式实现用户之间的即时通信,以对话框、按钮等形式简化操作,将大量复杂功能放在后台实现,前台以登录界面、聊天界面为主,
后台主要处理与服务器之间的通讯,以及信息验证等。
3、详细设计与代码实现
为简化代码实现过程,数据库对消息的处理方式采用单独设计消息表与用户设置信息表,在用户登陆期时,针对消息的读取、发送等操作均记录最后一条消息的ID,作为本次登录时间段消息操作的最后数据。
下次登录时以此为依据查询未读消息并显示。
群消息记录群ID、发送者ID与消息ID对应表,为简化数据库设计,与个人消息一同放置于消息数据库,并统一记录消息ID,方便查询离线消息。
针对消息发送过程中的各种截圖等多媒体文件的传输,采用以文件模式存储、消息储存中包含文件路径方式实现,在这个过程中不仅能实现图形等模式的传输,还可以扩展为各种多媒体模式(例如音频、视频文件等)。
本次软件仅实现了截图与文本同时传输。
(具体代码省略)
五、结论
网络上没有绝对安全的系统。
虽然在客户端和服务器端都考虑了遇到各种问题后的处理过程,并且增加了消息包验证代码,但是在实际运行时还是遇到一些问题,比如网络速度过慢导致信息发送失败、用户非正常退出软件导致消息丢失等。
但总体看来该软件运行状态不错,基本能实现最初设计的功能,在企业人员顺利沟通的同时保证了信息的安全性、稳定性。
后续可以增加的功能主要考虑文件的传输、视频的传输和签名功能,可以实现简单的公文流转管理和业务流程验证服务。
参考文献:
[1] 蔡瑞芳,基于Java的校园即时通讯软件的设计与实现[J]. 数码世界,2018(1):344-345.
[2] 唐浩,李波,闫磊,基于局域网的即时通信软件设计与实现[J]. 通讯世界,2018(1).
[3] 张宝帅,基于Web的即时通讯系统的设计与实现[J]. 河北科技大学,2018,18-25
[4] 常朝霞,程卫军,基于Android的Wi-Fi Direct即时通信系统的设计与实现[J]. 电视技术,2018(1):9-17.
[5] 石程前,信息时代网络即时通讯软件的发展设想[D]. 中国新通信,2017,19(1):38-38.
沈怀江(1972.9—),男,上海,工程师,学士(学位),从事单据处理、ERP 操作流程与设计、信息安全研究等。