网络聊天系统设计与应用

2014-03-17 00:49虞国全
中国教育网络 2014年9期
关键词:用户名管理员页面

文/虞国全

网络聊天系统设计与应用

文/虞国全

目前,计算机的发展离不开网络这一方向,网络将大大扩展计算机的功能,研究计算机在网络方面的技术以及应用,挖掘计算机的网络潜能,将能够大大提高我们对计算机的本身的认识,同时也能加深对计算机网络的认识。根据当前网络的需求,网络聊天越来越受各种网民青睐。因此开发网络聊天是相当有必要,而且在网站内增加聊天功能,不仅可以提高网站的访问量,同时可以留着访客,更重要的是让访客透过聊天室实时的互相交流。

本论文是从实际工程应用角度出发,以计算机网络原理为指导,结合当前网络中的一些常用技术开发了本聊天室工具,具有聊天室聊天、二人私聊、表情的应用以及请离用户的功能,主要对当今聊天软件的发展情况、与该聊天软件相关的各种技术以及该聊天系统的设计实现做了一个详细的阐述。

系统的关键技术

本聊天系统的开发主要用到了Socket通信,在此基础上,实现点对点聊天、广播聊天、一对多聊天,可以运行于任何支持TCP/IP协议的机器上,用到了多线程的设计,因此线程之间的同步是一大关键之处。由于系统采用C/S (Client/ Server)结构,客户端与客户端以及客户端与服务器端需要传送一些控制消息,因此系统需要自定义一些消息类型,这是该网络聊天系统的又一大关键之处。

系统环境要求

1.硬件要求:安装了网卡,并连入局域网。

2.软件要求: Windows98以上的系统;安装了支持Socket通信的TCP/IP或者协议;JDK1.4以上版本。

系统分析

如今流行的聊天软件功能已经非常强大,基本上朝着三个大的方向发展,即个人及时通信,企业实时通信和娱乐资讯。它的功能主要有:

1.个人文本聊天;

2.个人语音聊天;

3.个人视频聊天;

4.图像传输;

5.文件传输;

6.在线游戏;

7.聊天室聊天;

8.隐身,上线;

9.群聊天;

10.企业级实时通信。

聊天软件的发展方向是三维化,人性化,综合化。

项目开发的主要内容

设计并实现基于Socket的文本聊天程序包括广播聊天,二人私聊。涉及的内容包括用户登录,聊天方式的选择,附带表情,以及悄悄话选项,管理员身份可以看到私聊的和内容。由一个管理员运行ChatRoomServer建立主机服务器,其他用户运行ChatRoomClient运行客户端,通过服务器的IP和设置的端口号与之建立连接。在服务器端可以显示用户登录的信息,客户端可以看见当前在线用户的人数和昵称。在由于开发目的的原因,所以不采用登录验证模式,只要输入用户昵称即可登录,对恶意刷屏或语言不礼貌者,管理员可以请离该用户。

系统总体设计

该系统网站总体分为四大模块,分别是:欢迎界面、管理员模块、用户管理模块、聊天模块。其中欢迎模块就是开始的欢迎页面,是全网站的首页,也是带领用户进入本网站的向导,其中包含进入登录界面和进入注册界面两个链接。

管理员模块是管理员进行对网站的管理使用的模块,有管理员登录页面、管理员管理页面和管理员操作反馈页面等组成,主要实现对已注册用户和在线用户的管理,通过对用户的了解确定用户这册身份的去与留。这主要通过管理员拥有的对数据库操作的权限,从而决定是否从数据库内将用户信息删除以达到踢出用户的功能。利用网站内提供的JavaBean实现和数据库连接,在管理员操作页面内设有动态delete删除SQL语句,通过语句连接数据库,通过获取文本框内管理员输入的用户名,设立相应数据集,对应数据库,首先执行select选取操作以确定数据库中是否有管理员输入的用户名,若错误的用户名则提示管理员错误信息,若正确的用户名则对数据库执行delete操作,删除数据库内用户的信息,从而达到删除用户的的功能。

图1 用户E-R关系

表1 用户数据表属性设计

用户模块主要包括用户登录和用户注册两个单元,分别是用来给用户登录和用户注册使用的页面。用户的登录可以使用已经注册的注册用户身份登录,也可以使用游客身份进行登录。使用游客身份登录是不需要注册的,可以每次使用一个不同的名字,比较自由,但同时也难以在聊天室内有个完整的虚拟形象,可以弥补此处就是使用注册用户身份,这样便可以有一个固定的称呼,可以更好地与聊友们交流。用户的注册单元是常规的注册,主要包含用户名、密码和联系方式三项,其中联系方式是比较常用的E-mail联系方式。注册的成功与否会有相应的提示。

图2 服务器结构流程

图3 客户端结构流程

已注册用户的登录实现主要通过将用户的提交用户名与数据库中的对比,查找是否有该用户名,使用动态select选取SQL语句。如果数据库内没有该用户名,则该用户显然尚未注册,反馈相应信息;如果有该用户名则继续对应用户提交的密码与数据库内该用户名项的密码相对比,结构则允许用户登录,并将页面转到聊天界面,否则提示相应错误信息。并同时将登录成功的用户的用户名写进Application从而在聊天界面的用户列表里能被显示出来。游客的登录则只要判别用户没有重复,并合乎用户的规范就可以登录并转到聊天界面了,这里没有数据库的操作。游客与已注册用户有着一样的使用界面。

由于篇幅原因,部分数据库设计如下。

数据库逻辑结构

因为每个实体都必须转化为一个关系模式,所以有三个关系模式,可以将上述E-R简化为如下关系模式:

用户(号码,昵称,密码,性别,头像号码,所在ip地址,在线状态,连接使用的端口号,邮箱,籍贯)

好友(用户号码,好友号码)

聊天记录(发送方号码,接收方号码,发送时间,聊天内容)

用户E-R如图1所示。

根据关系模式,可以得到三张表,其中用户数据表的属性设计见表1。

图4 客户端主页面效果

客户通过Socket(InetAddress,port)建立与服务器的连接。服务器与客户都通过构造ObjectInputStream,ObjectOutputStream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,比如文件传输等,服务器收到来自客户的请求后,针对不同的消息处理请求。如图3所示。

最终主界面效果如图4所示。

本系统是典型的C/S架构,它的优点是大部分功能由服务器完成,客户端简单易维护,这样做用户就更为容易接受。并且占用的系统资源少,提高了性能。缺点是聊天的内容没有储存,当清屏以后就无法再看到以前的聊天记录了。日后可以考虑增加日志的功能,把聊天记录及一些用户信息存储在.txt文件或者数据库中,使其有处可查。本聊天系统设计是为软件开发人员在局域网中方便交流,减少成本,消除由于交流不同带来的开发成本上升,可能部分模块功能有所不全,对此本人会再加强设计以期全部完成实现。

(作者单位为南昌理工学院计算机系)

猜你喜欢
用户名管理员页面
《护士进修杂志》投稿程序
刷新生活的页面
我是小小午餐管理员
《护士进修杂志》投稿程序
答案
我是图书管理员
我是图书管理员
让Word同时拥有横向页和纵向页
可疑的管理员
《护士进修杂志》投稿程序