摘 要:
随着互联网的高速发展,产生了很多的网络聊天工具。凭借着其快速,高效的优点十分迅速的在网民中散播开来。从本质上而言,即时聊天系统开发通常涵盖下述基本内容。其中涵盖服务器端设计,此外还涉及到客户端设计。前者旨在基于Socket套接字,积极构建出相应的服务器,随后即可针对来源于客户端的相关信息,进行精准的读取,并实现转发操作。此外,还可针对新用户列表进行跟踪刷新。后者的设计原理,即基于和服务器之间,积极构建出稳定的连接,以此来实现多样化客户端彼此之间的良好交互。
对于本文所研发的服务器端而言,其重点涵盖若干子模块。其中包含注册模块以及聊天模块。除此之外,还涉及到登录模块以及相应的后台管理模块。
关键词:即时聊天系统;套接字;Java;
Abstract
With the rapid development of the Internet, a lot of online chat tools have been produced.With its fast, efficient advantages very quickly spread among netizens.The development of instant messaging system mainly includes two aspects: server-side design and client-side design.The server-side design mainly establishes the server through Socket sockets. the server can read and forward the information sent from the client, and can also refresh the list of users.The client design mainly carries on the information exchange between the client and the client by establishing the connection with the server.
The server side of the system mainly includes several sub-modules: registration module, login module, chat module, background management module.
Keywords:Instant chat system;Socket;Java
目录
题目: 基于Java的即时聊天系统的设计与实现 1
摘 要: 2
Abstract 2
第1章前言 4
第2章可行性分析 4
2.1经济可行性 4
2.2技术可行性 4
2.3操作可行性 5
2.4法律可行性 5
第3章需求分析 5
3.1系统基本功能描述 5
3.2系统需求分析 5
3.3数据流图 5
3.4用例图 7
3.5数据库设计 8
1、数据库需求分析 8
2、概要设计 8
3、逻辑设计 10
4、物理设计 11
第4章系统概要设计 15
4.1系统总体流程图 15
4.2系统功能模块划分 15
第5章系统详细设计与实现 18
5.1系统设计与实现。 18
5.1.1注册模块 18
5.1.2登录模块 21
5.1.3聊天模块 23
5.1.4后台管理模块 25
结论 29
致谢 30
参考文献 30
第1章前言
人类从蛮荒的原始社会发展到今天高度发达的文明社会。在这其中,人类之间懂得互相交流来取长补短是人类发展的一项重要技能。现如今,中国社会已经逐步获得相对稳定的蓬勃发展,交流方式也随之趋于多样化。从最早的交流方式——直接交流(语言、文本等),到使用媒体的沟通方式——间接沟通(飞翔的鸽子、烽火等),然后,在现代,工业革命的结果被用于创造远程通信方法(电报、电话等)。到了上个世纪末,在当前时期,计算机技术正处于迅猛发展的过程当中,一种新型的通信方式,即时聊天系统诞生了。这种新型通信方式所展现的优点是以前的交流方式没法比的。
本文旨在针对以Java语言为基础,而成功构建的即时聊天系统,进行更深层次的细致研究。即时聊天系统是一种以满足用户之间即时进行信息交换为宗旨的系统。该系统的主要特点是可以动态和实时的完成信息的传输。
第2章可行性分析
任何系统的开发都受到一些限制,列如时间和资源。因此,在开发每个系统之前,必须进行可行性分析,唯有如此,才能有效规避由于软件开发而引发的风险。也大大避免了在物力、人力和财力上的浪费。[1]
对于该系统而言,其所涉及的可行性分析,需要涵盖下述基本内容。例如:经济可行性以及相应的操作可行性等。
2.1经济可行性
近年来,计算机网络备受青睐,逐步获得相对广泛的实际应用。在此背景下,仅需借助于MySQL数据库服务器发挥的作用,即可维持系统所需。值得一提的是,Oracle数据库服务器无需耗费高昂的经济成本。因此该系统的设计在经济上是完全可行的。
2.2技术可行性
此类系统将能借助于MySQL的作用,针对多样化用户所涉及的基本信息,进行及时存储。而Oracle运行时比较占用内存,虽然它集成了很多功能,但很多功能我们用不上,所以MySQLl是很符合我们的需求的。通常情况下,MySQL旨在将各种类型的数据存储至对应的表格当中。所以安全度是很高的。并且MySQL无需耗费高昂的经济成本,即可达到相对迅猛的运行速度[5]。使用JDBC技术添加,删改和更改,借助于套接字的作用,将可有助于客户端与服务器彼此之间的紧密连接。故而如果基于技术角度进行考量,则本系统在设计方面,基本满足可行性要求。
2.3操作可行性
首先,本地机器能够基于某特定机器,将即时消息看做成客户端亦或为相应的服务器。与此同时,仅需将若干计算机尽数连接至某特定的局域网当中,并将亟待连接的某特定服务器端所含有的IP地址,尽数设定成系统的客户机。在此情况下,系统将能进行局域网通信。从这一角度而言,本系统在操作方面,基本满足可行性要求。
2.4法律可行性
这种实时聊天系统的开发不会侵犯到他人的专利权,也不会违反国家的有关规定,因此在法律上是可行的。
第3章需求分析
3.1系统基本功能描述
客户端能够执行注册,即时聊天以及收发接受文件等一系列操作。值得一提的是,在收发消息的过程中,还能进行离线接收。
服务器端需要积极构建出Server Socket,与此同时,还应针对客户端的实际状态进行跟踪监听。
在后台管理系统,可以添加,删除和更改用户,查看在线用户以及使用户脱机。
3.2系统需求分析
服务器端应该完成的工作包括:
(1)服务器端需要积极构建出某特定的Server Socket,此外还应针对客户端的实际状态进行跟踪监听。
(2)各种类型的客户端信息,均应实时传递至相应的服务器端。在此之后,服务器端应当基于实际需求,来分发多样化关键信息。
客户端应该完成的工作包括:
(1)和服务器彼此之间,积极构建出相应的通信通道,以此来实现向某特定的服务器端,实时发送指定信息。
(2)实时接收来源于服务器端所发送的相关信息。
3.3数据流图
数据流图的本质在于体现出系统的基本逻辑。通常情况下,在结构化系统分析过程当中,以及在软件模型的直观表达上,均需应用到数据流图。[2]
1.顶层数据流图
图3.3.1系统顶层数据流图
2.客户端数据流图
图3.3.2客户端数据流图
3.服务器端数据流图
图3.3.3服务器端数据流图
3.4用例图
1.普通用户的用例图:
图3.4.1普通用户用例图
2.后台管理员的用例图:
图3.4.2后台管理员用例图
3.5数据库设计
1、数据库需求分析
从常理上来看,聊天系统需要涵盖用户基本文件所涉及的各类数据表。本文重点涵盖用户表,该表旨在针对多样化用户所涉及的基本信息,进行及时存储。此外还涉及到消息表,该表旨在针对多样化用户所涉及的离线聊天消息,进行及时存储。
2、概要设计
本文基于针对数据库进行科学合理的需求分析,决定设计出账户实体以及离线消息实体等一系列实体,用以针对性反映出现实生活当中某些对象所涉及的数据关系。系统E-R示意图及其部分实体的E-R示意图,详见下图。
系统总体E-R模型
图3.5.2-1系统总体E-R图
用户的基本信息E-R模型:用户(用户密码,用户状态,用户邮箱,用户头像)
图3.5.2-2用户基本信息E-R图
聊天消息的E-R模型:消息(消息ID,消息类型,消息内容,消息发送者,消息发送时间,消息接收者)
图3.5.2-3聊天信息E-R图
3、逻辑设计
以本文系统数据库为研究对象,其重点涵盖两张表格,依次为用户信息表以及相应的聊天消息表。
前者旨在针对系统当中已经成功注册的全体用户,所涉及的用户名及其相应的密码,进行跟踪记录。在此之后,相关用户将能基于客户端登录窗口,将自身已注册的用户名及其相应的密码进行正确输入,若其中存在输入错误,即无法登陆。
表3.5.3-1用户信息表
字段名 数据类型 是否为主键
U_ID NUMBER 是
U_NAME VARCHAR(50) 否
U_PWD VARCHAR(50) 否
U_IP VARCHAR(50) 否
U_STATE VARCHAR(50) 否
U_GENDER VARCHAR(50) 否
U_EMAIL VARCHAR(50) 否
U_LAST_LOGIN DATE 否
U_LAST_EXIT DATE 否
U_HEAD_IMG VARCHAR(100) 否
U_BIRTHDAY DATE 否
聊天消息表:该表旨在针对多样化用户所涉及的离线消息,进行跟踪记录。在此过程中,管理员能够随时浏览。其中涵盖发送者等基本信息。
表3.5.2-2聊天信息表
字段名 数据类型 是否为主键
MSG_ID NUMBER 是
MSG_CONTENT VARCHAR(2000) 否
MSG_SENDFROM INTEGER 否
MSG_SENDTO INTEGER 否
MSG_TYPE VARCHAR(2) 否
MSG_SENDTIME DATE 否
4、物理设计
数据库一般基于某特定的逻辑结构,融于相应的环境中当中。需要注意的是,该环境应当提供科学合理的数据存储结构以及各种类型的存取方法。
(1) USERS表
图3.5.4-1表
创建USERS表格
createtableUSERS
(
u_idINTEGERnotnull,