1、基于 BS 模式的即时通讯软件的设计/ - 1 -基于 B/S 模式的即时通讯软件的设计 周柳阳,张云龙,印亚兵 中国矿业大学计算机学院,江苏徐州(221116) 摘 要:即时信息 (Instant messaging,简称 IM),指可以在线实时交流的工具,也就是通常所说的在线聊天工具。它较传统的通讯方式有着不可比拟的优势:当前主流 IM 软件大都是免费的,通讯成本较低;其通讯方式主要为文字,兼有视频和语音通讯功能,通讯方式丰富;在其发展了固定用户群之后,其扩展的空间更加广泛。即时通讯软件已经深深的影响到人们的日常生活。本文旨在探讨一种基于 B/S 模式的即时通讯软件的应用 ,通过Ajax(
2、AsynchronousJavaScript+XML,异步 javascript 和 XML)等技术的应用,实现便捷、安全、稳定、高效的即时通讯软件。 关键词:IM,Ajax,B/S,XML 1. 引言 目前,即时通讯市场已经从多家竞争时代走向垄断统治时代。大多数即时通讯软件已随着时间的推移逐渐退出竞争舞台。即时通讯软件的用户群也逐渐增多。这标志着即时通讯市场已逐渐走向成熟。 在即时通讯的发展过程,有两个很重大的特点: 1、交互的信息日益复杂:从早期的文字、文件、音频到现在日益流行的视频 信息。 2、交互的群体日益普遍:从早期的专业人员到现在的人民大众以及企业级的需求。 人类对信息的实时性需求
3、,注定即时通讯必将成为历史的潮流,他的广泛性将和移动通讯一样,不可逆转。通过即时通讯,我们可以在网络上,更加方面地交互信息,即时交互一切需要交互的信息。 随着未来互联网的发展完善,即时通讯将会应用到更多的领域,并且发挥重要的作用。 2. 系统分析 2.1 系统功能要求 下面将着重对系统功能和设计做详细介绍。主要包括以下四个模块1:用户注册/登录模块、好友列表及状态实时检测模块、单人聊天模块、群组聊天模块、好友查找/添加模块、退出模块。其中用户注册/登录模块包括用户注册、用户登录两个子模块;好友列表及状态实时检测模块包括好友列表更新、好友在线状态检测、新消息检测、状态设置四个子模块;单人聊天模块
4、包括消息发送、消息更新两个子模块;群组聊天包括消息发送、消息更新、群组成员列表更新三个子模块。 (1) 用户注册/登录模块 用户注册 该模块实现用户的注册,用户填写完系统要求的资料后,系统赋予每个用户一个唯一的六位数帐号,并且将所有信息写入数据库。 用户登录 该模块实现用户的登录,在验证用户提交的用户名密码后,若验证通过,则将登录标识符设为已登录,若不通过,则返回登录界面。 中国科技论文在线 / - 2 -(2) 好友列表及状态实时检测模块 好友列表更新 该模块实现隔一定时间向服务器请求数据,取得最新的好友列表并将最新内容显示在好友列表里面。 好友在线状态检测 该模块实现隔一定时间向服务器请求
5、数据,取得好友是否在线标识,若用户在线,则显示彩色头像,若不在线,则显示灰色头像。 新消息检测 该模块实现隔一定时间向服务器请求数据,取得用户最后已读信息时间,并对比即时消息发送时间,若为新消息,则发送该消息的好友头像闪动,否则,头像为静止状态。双击头像可打开与该用户的聊天窗口。 状态设置 该模块实现用户可以通过点击单选按钮直接设置自己的在线或隐身状态。 (3) 单人聊天模块 消息发送 该模块实现在聊天窗口输入文字,点击“发送”按钮或用 Ctrl+回车组合键即可发送消息,可设置文字大小、颜色、粗体、斜体、下划线等样式。 消息更新 该模块实现隔一定时间向服务器请求数据,取得发给自己的即时消息,并
6、显示在聊天窗口里。 (4) 群组聊天模块 消息发送 该模块实现在聊天窗口输入文字,点击“发送”按钮或用 Ctrl+Enter 组合键即可发送消息,可设置文字大小、颜色、粗体、斜体、下划线等样式。 消息更新 该模块实现隔一定时间向服务器请求数据,取得即时群组聊天消息,并显示在聊天窗口里。 群组成员列表更新 该模块实现隔一定时间向服务器请求数据,取得该群最新的成员列表,并显示在聊天窗口的成员列表里面。 (5) 好友查找/添加模块 该模块实现用户可通过输入用户号码或昵称等条件来搜索好友,并实现对搜索出的用户的资料查看和添加好友功能。 (6) 退出模块 该模块实现在用户关闭在线聊天窗口或点击“退出”时
7、将用户的状态设置为离线并且返回登录界面。 2.2 系统的可行性分析 制作系统前,在充分调研的基础上做出系统的开发目标,即系统建立后所要求达到的运行指标,这是系统开发和评价的依据。系统充分考虑了用户对软件功能的需求,为系统设计了一些实用关键的功能。不足之处是,系统目标不可能在短时期内就会实现的非常具体2,中国科技论文在线 / - 3 -它还将在以后的开发、维护过程中逐步被完善。但从总体上看,系统拥有较强的可行性。系统的目标确定后,从以下几个方面对系统的实现进行可行性分析: 2.2.1 技术可行性 系统用到的硬件、软件性能要求、环境条件都是能具体实现的,再加上对开发系统所用到的技术做了进一步的研究
8、,遇到困难时得到了指导老师和同学的协助,所以说在技术方面是可行的。 2.2.2 经济可行性 相关技术书籍可以在学校图书馆借到或在书店买到,并且设计开发系统的电脑可以在机房免费使用,所以要完成该系统在经济上是可以承受的。 2.2.3 运行可行性 系统的主要功能开发完以后,对系统进行了调式,运行的结果基本能达到用户的要求,相信在以后进一步的完善中会得到令人更加满意的结果,尽管目前系统还有需要改进的地方,但是初步的结果表明运行方面是可行的。 按上述几个方面进行可行性分析、研究后,得到结论:系统开发是可行的。2.3 系统特点 运行速度快、效率高、界面友好、注重用户体验、操作方式与主流 IM 软件类似;
9、并且该系统不需要用户安装客户端,通过 WEB 浏览器即可使用其所有功能3。 3. 系统总体设计 3.1 系统总体设计 基于 B/S 模式的即时通讯软件的设计开发遵循一个原则,就是紧密地结合用户的需求和体验。该系统是在 PHP+MySQL 环境下进行开发的,设计了多个模块,由 Ajax 技术实现其数据的实时传输,利用客户端的动作触发 JS 函数实现大部分功能4。 3.1.1 系统结构图 在系统的概要设计阶段,最主要的就是确定系统的整体结构。确定了系统的总体结构,也就相当于确定了系统的总体目标,根据这个总体目标,再一一设计各子模块。系统总体结构图如图 1 中国科技论文在线 / - 4 -图 1 系
10、统功能模块 4. 数据库设计 在设计应用程序之前,应先组织数据。通过建立数据库来管理数据,既能增加数据的可靠性,也便于系统的开发。创建数据库的优点:创建数据库是实现数据集成的有效手段,数据库按一定的结构集中了应用系统中的数据,使之更便于统一管理;可以定义数据词典的功能;允许在数据库中建立永久关系。 数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需一个数据库。数据库设计可分为逻辑设计与物理设计两个步骤。第一步确定数据库所包含的表及其字段。第二步确定表的具体结构,即确定字段的名称、类型及宽度;此外还要确定索引,为建立表的关联准备条件。 4.1 数据库逻辑设计 即时通讯软件
11、要处理大量的信息或数据,为了使信息的存取、管理工作更加方便、安全、快捷,特别为该系统设计了一个数据库,并且设置了许多数据库表,目的是为了节省服务器空间,便于用户的查询和管理。 本系统的数据库表为:users(用户信息表)、friendlist(好友信息表)、groups(群组信息表)、grouplist(群组成员信息表)、chatlist(个人聊天信息表)、readflag(已读信息标识表)、glist(群组用户注册 即时通讯 用户登录 好友列表 单人聊天群组聊天好友查找添加 退出登录 好友列表更新好友状态检测新消息检测个人状态设置消息发送消息更新消息发送消息更新成员列表更新管理中心中国科技论
12、文在线 / - 5 -聊天信息表)。这些表中都存在一个主键 id,id 是唯一的,不能重复,这样可以保证数据录入的准确性,系统中的 id 可自动增加的,每设置即添加完一条记录后,id 会自动加 1,避免在输入时会重复输入同一个 id,造成数据的丢失。同时建立外键以实现数据完整性的约束。 4.2 数据库的创建与连接 在上面的章节里只做了数据的收集、整理和加工。并没有对数据库进行操作5,而应用程序一般都与数据库有着密切的联系,所有表的创建都要在数据库中保存才能被程序调用。因此,数据库管理在应用程序开发的初级阶段是非常关键的。下面对数据库进行操作。 通过 MySQL 的第三方管理软件 phpMyAd
13、min 建立数据库,命名为 my_db,创建完数据库后,便可以在创建的数据库中进行所需的数据表的创建、编辑、删除等操作。由于系统绝大部分模块都需要操作数据库,因此将连接数据库的代码封装到一个 php 文件中,需要链接数据库的模块直接引用该文件即可,减少代码冗余。该文件定义的连接数据库的函数是: function DBconnect() $conn=mysql_connect(localhost:3306,root,password); if($conn) mysql_select_db(my_bd);/my_db 为数据库名称 return $conn; 5. 结论 基于 B/S 方式的即时通
14、讯软件实现了预期的设计目标和设计要求,其操作简单便捷,操作方式类似目前主流 IM 软件,通用性强。系统利用 Ajax 技术,具有良好的交互性,注重用户体验。随着开发工具的改进和数据库管理技术的提高,Ajax 技术将更加成熟。相信即时通讯软件也将不断向前发展,为我们的生活、学习和工作做出更大的贡献。 参考文献 1 美Julie C.Mdloni PHP.MYSQL 和 Apache 编程导学 机械工业出版社 20098 2 美加根塔 奎格利 PHP 与 MySQL 案例剖析 人民邮电出版社 2007 3 德Michele E.Davis 学习 PHPMySQL 东南大学出版社 2008 4 冯燕
15、奎.php4.0 与 MySQL 动态网站编程 清华大学出版社,2002. 5 马朝晖.PHP 和 MySQL Web 应用开发核心技术M.北京:机械工业出版社,2006. Design of IM software based on B/S model Zhou Liuyang, Zhang Yunlong, Yin Yabin Computer Science and Technology, China University of Mining and Technology, Xuzhou (221008) Abstract IM (Instant messaging, referred
16、to as IM), that can be a tool for online real-time communication, which is commonly referred to as online chat tool. Its more traditional means of communication has unparalleled advantages: the current mainstream IM software are free of charge, lower communication costs; its main means of communicat
17、ion for the text, both video and voice communications functionality, a rich means of communication; in its development of a fixed user groups, his more extensive space for expansion. Instant messaging software has been deeply affect peoples daily lives. This paper aims to explore based on B / S mode real-time communication software applications, through the Ajax (AsynchronousJavaScript + XML, asynchronous javascript and XML) applications and other technologies to achieve efficient, safe, stable, high-performance real-time communication software. Keywords: IM,Ajax, B/S,XML 中国科技论文在线