ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:23.07KB ,
资源ID:11275681      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11275681.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(聊天室的一个小思路.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

聊天室的一个小思路.docx

1、聊天室的一个小思路第一章:绪论1.1 设计思想1.2 开发工具和相关技术简介第二章:聊天室总体分析和设计2.1 聊天室的运行原理2.2 聊天室的功能2.3 聊天室的页面结构设计2.4 聊天室的程序结构设计2.5 数据库结构设计第三章:聊天室的详细设计 变量说明 聊天室的核心引擎(全局聊天消息分发引擎)设计 用户客户端聊天信息输入与发送模块设计 用户客户端全局聊天信息接收与显示模块设计 全局聊天消息缓冲 实例聊天室列表 聊天室在线用户列表 表情图释索引表 聊天用户个人信息保存模块 聊天室显示面板属性个性化设置模块101 聊天对象选择功能102 聊天者名字修改功能103 公聊私聊模式切换功能104

2、 文字背景色前景色设置功能105 聊天面板屏幕显示字体设置106 自动滚屏设置功能 登陆聊天室模块 退出聊天室模块第四章:聊天室运行环境构架与说明 运行环境要求 运行环境构建 聊天流程说明第五章:参考文献附录:聊天室源代码 第 一 章 绪论在Internet(互连网)飞速发展的今天,上网成为越来越多人们的选择。有关的网络技术也层出不穷。现今活跃在WEB站点中的ASP就是近年才发展起来的一项新型技术。ASP功能强大、本领高强,利用ASP功能时几乎没有什么限制,可以实现动态页面。本文主要介绍了ASP技术相关的基础知识,并探讨了利用ASP + SQL server 建立聊天室的设计思想、方法及设计过

3、程,详细地分析了各个模块的功能及实现方法。本文所实现的聊天室具有良好的程序结构和人机交互界面,通用性强,可应用于不同需求的网站。 设计思想在互联网上,传统的网站或用户都使用类似于Email(电子邮件)的形式互相发送信息来进行一系列的交流但这种异步交互的办事效率可见是很低的为提高效率,让用户之间能达到实时交互的目的,所以出现了可以实时交流信息的聊天室,来满足用户的需求 1.2 开发工具和相关技术简介1.2.1 简介Active Server Pages (ASP) 是服务器端的脚本编写环境,可用它来创建动态 Web 页或生成功能强大的 Web 应用程序。ASP 页是包括 HTML 标记、文本和脚

4、本命令的文件。ASP 页可调用 ActiveX 组件来执行任务,例如连接到数据库或进行商务计算。通过 ASP,可为您的 Web 页添加交互内容或用 HTML 页构成整个 Web 应用程序,这些应用程序使用 HTML 页作为您的客户的界面。 的特点:ASP可以和HTML或其它脚本语言(VBScript,JavaScript)相互嵌套 ASP是一种在WEB服务器端运行的脚本语言,程序代码安全保密 ASP以对象为基础,因此可以使用ActiveX控件继续扩充其功能 ASP内置ADO组件,因此可以轻松的存取各种数据库 ASP可以将运行结果以HTML的格式传送至客户端浏览器,因而可以适用与各种浏览器 制作

5、本聊天室, 服务器端我们使用的是 VBScript 脚本 , 客户端我们使用功能强大的javascript脚本 实现BS 交互. 1.2.2 SQL server 2000简介SQL Server 2000 是一个杰出的数据库平台,可用于大型联机事务处理数据仓库以及电子商务等,特别是对XML,HTTP 的支持,以及在WEB ,数据仓库服务中的应用,而且存取运行速度远远高于 Access 等小型数据库. 所以很适合用于实时性要求比较高的应用程序, 本聊天室因为实时性要求比较高,所以使用SQL server2000 作为数据库,以获得高效的性能. 1.2.3 JavaScript简介Java Sc

6、ript是由Sun公司及网景Netscape公司开发的。它可以让你设计交互的网页内容,但不能单独执行,必须在浏览器或服务器上执行。本文就是他在客户浏览器上的应用. 1.2.4 DHTML(动态HTML) 简介传统的HTML是静态的,当它被加载到浏览器后,它只像一个画面,怎么看也不会发生变化,而动态HTML则意味着Web页面对用户有响应,即,动态HTML能自动变化。 125 Cookie 技术简介Cookies是为了弥补HTML的一个缺陷而产生的。HTML是一种无记忆的协议,也就是说用户目前正在浏览的主页对在此之前浏览过的主页没有丝毫记忆和了解。而实际的需要可能是希望浏览器能够记住一些信息,而这

7、些信息却不希望让使用者看到,比如说可能是一些用户的身份信息,因此这些信息是不能以参数的形式传送的。这个需求由HTML本身无法解决,于是引入了Cookies的概念,也就是由WebServer向浏览器写入一些信息,这些信息用户无法看到,当浏览器网站的其他主页发出GET请求时把此Cookies信息也会发送过去,供该主页使用,这样就实现了一定程度上的HTML的记忆能力。本聊天室就是利用Cookie来存取一些用户的个人配置信息,以减轻服务器运行负担。 第 二 章 聊天室总体分析和设计 2.1 聊天室运行原理聊天室最基本的原理就是: 从客户端收集消息,然后 通过服务器端消息分发程序中转,将全局消息发送给的

8、所有用户. 其原理图如下: 用户1(聊天客户端IE) 发送聊天消息 用户2(聊天客户端IE) 发送聊天消息 接收全局聊天消息 接收全局聊天消息 聊天服务器 消息分发引擎 用户3(聊天客户端IE) 用户4(聊天客户端IE) 发送聊天消息 发送聊天消息 接收全局聊天消息 接收全局聊天消息 图(1)2.2 聊天室的功能 聊天室支持公聊、私聊、每个用户都有代表自己的昵称,可在用户在线列表中选择聊天对象。聊天消息中可插入表情图释,采用主动刷新机制,确保不会掉线。精心设计的消息分发引擎, 在没有新信息的时候主窗口看不到刷新,尽可能的减小服务器负担。用户类型分成:游客(性别未知),美女和帅哥 3种。且每个用

9、户在一台电脑上只能进一个聊天室。 2.3 聊天室的页面结构设计本聊天室分为 4 块区域,即 公聊区,私聊区,聊天面板,用户列表。采用 框架形式 的页面结构,以便在一个IE窗口中 显示多个WEB页面,使之构成一个完整实用的聊天室界面。 如图所示:图(2)由以下几个asp文件组成此界面:chat.asp :由框架组成分别包含: chatboard, singlechat, userlist, controlboard 几个框架(Frame). chatboard.asp : 公聊区页面singlechat.asp : 私聊区页面controlboard.asp : 控制版userlist.asp

10、: 用户列表 2.4 聊天室的程序结构设计本聊天室为了尽可能达到通用性,所有将聊天室抽象成一个聊天室模块!只要设置不同的聊天室名字,就可以建立独立的聊天室。应用于网站时,可以由网站管理员建立,也可以让用户自己建立。 下面介绍一下组成本聊天室的11个功能模块 聊天室的核心引擎:全局聊天消息分发引擎 用户客户端聊天信息输入与发送模块 用户客户端全局聊天信息接收与显示模块 全局聊天消息缓冲 实例聊天室列表 聊天室在线用户列表 表情图释索引表 聊天用户个人信息保存模块 聊天室显示属性个性化设置模块 登陆聊天室模块 退出聊天室模块 以下是 本聊天室的程序组成结构图: 为用户分配资源 释放该用户的资源 登

11、陆模块 分发信息 发送信息 发出登陆请求 发出退出请求 聊天用户个人信息保存模块 聊天室显示属性个性化设置模块 服务器端聊天信息接收分发引擎 客户端聊天信息输入与发送模块 全局聊天消息缓冲 实例聊天室列表 表情图释索引表 全局聊天信息接收与显示模块息保存模块 聊天室在线用户列表 局部模块 退出模块 全局模块 图(3) 2.5 数据库结构设计 本聊天室 中的2个模块的数据是 存放在数据库中的。1个是 在线用户的列表模块,另一个是实例聊天室列表模块。 251 实例聊天室列表模块1. 表名:ChatRoomlist2. 结构:字段名字段类型字段字节数 id int 4 (记录唯一表示ID) Room

12、name varchar 50 (实例聊天室名字) creater varchar 50 (聊天室的建立者) createtime smalldatetime 4 (建立时间) state varchar 10 (聊天室状态,包括:开启和关闭) memo varchar 100 (备注) 252 在线用户的列表模块表结构表名: ChatRoomUser结构字段名字段类型字段字节数id int 4 (记录唯一表示ID)nickname varchar 50 (用户昵称)sex varchar 10 (用户性别)logintime smalldatetime 4 (登陆聊天室的时间)RoomApp

13、Name varchar 50 (当前所在聊天室的程序内部名字)TrueRoomNamevarchar 50 (当前所在聊天室的实例名字)JoinIP varchar 50 (用户进入聊天室时所用的IP) SessionID varchar 50 (用户进入聊天室时,服务器分配个用户的SessionID(用户唯一表示ID) 第 三 章 聊天室的详细设计 3.1 变量说明l 服务器端全局变量在 ASP 中, 全局变量是通过 Application 对象 保存的, 他从Web 服务器 启动开始 到 关闭之前 一直存在, 所以可以被程序共享访问在我们的聊天室里 使用了以下这些变量 1. applic

14、ation(RoomAppName) (保存信息高速缓冲, RoomAppName 是一个抽象变量,根据不同的聊天室,设置不同的高速缓冲)2. application(RoomAppName &_MsgHeadPointer) 消息缓冲环结构中的头指针这里用数组下标标识3. application(RoomAppName &_MsgTailPointer) 消息缓冲环结构中尾指针这里用数组下标标识 4. application(RoomAppName &_Msg_ID) 消息缓冲中 标识消息记录唯一的递增变量5. application(Faces) 图释索引列表, 用于图释选择和定位 l 服

15、务器端局部变量ASP 里有 3 种 局部变量: 1. 页面使用的变量2. 用户从本网站开始到离开期间使用的变量3. 保存在 每个用户客户端的变量 页面使用的变量1. RoomId : 标识聊天室的唯一ID2. chatUsername : 在聊天室里用的用户昵称3. UserSex : 用户性别 4. RoomAppName : 用于标识各个聊天室的唯一名字, 由 字符串 ChatRoom_ 和 RoomID 拼接而成 用户从本网站开始到离开期间使用的变量 (使用session对象实现)1. session.Contents(Pass) 布尔变量,在用户退出聊天室时,用于用户的合法性判断2.

16、session(RoomAppName) 保存当前用户所在的聊天室唯一标识名3. session(ChatNickName) 保存当前用户在聊天室里的昵称4. session(UserSex) 保存当前用户的性别 保存在 每个用户客户端的变量 (使用Cookie技术实现)1. response.Cookies(RoomAppName)(ChatNickName) 当前用户在聊天室里的昵称2. response.Cookies(RoomAppName)(ChatRoomTrueName)当前用户所在的聊天室真正的名字(可以重复)3. response.Cookies(RoomAppName)(C

17、hatRoomAppName) 当前用户所在的聊天室唯一标识名4. response.Cookies(RoomAppName)(MsgLastLinePointer) 标识用户从消息缓冲中 接收的最后一条信息的 消息id, 用于判断用户客户端消息的更新 l 客户端局部变量本聊天室 在客户端 使用了一些变量来 保存和判别 每个用户在聊天室中的个性化设置 和 聊天信息的接收和显示(都是javascript 在客户断定义的变量和数组)1. FontBold : 聊天内容显示字体是否为粗体2. FontItalic : 聊天内容显示字体是否为斜体3. PrivateChat : 聊天模式是否为私聊模式

18、4. SpliteScreen : 聊天内容显示方式是否分屏5. ScrollSreen : 聊天内容显示时是否自动滚屏6. FrontColor : 聊天内容显示字体的前景色7. BackColor : 聊天内容显示字体的背景色8. selfname : 用户自己的昵称 9. TalkerArray : 接收更新消息时 保存说话者字段的1维数组10. TalkToArray : 接收更新消息时 保存说话对象字段的1维数组11. MsgArray : 接收更新消息时 聊天内容字段的1维数组12. SaytimeArray : 接收更新消息时 说话时间字段的1维数组 l 系统常数1. RoomM

19、axUser : 每个聊天室的最大用户数2. MaxMsgLines : 消息高速缓冲数组矩阵的最大行数,3. MaxMsgColumn : 消息高速缓冲数组矩阵的最大列数4. MaxFaces : 图释列表的 最大图释个数5. FacePath : 图释文件的相对存放路径 3.2 聊天室的核心引擎(全局聊天消息分发引擎)设计首先,我们介绍一下使聊天室正常运转的核心引擎全局聊天消息分发引擎。他就像人的心脏运送血液那样,在聊天系统中运送着用户的信息,使整个聊天交互过程得以正常运转。l 功能说明:接收用户发送到服务器的聊天信息,向用户发送在聊天室中参与聊天的所有用户的全局聊天信息。 l 接收发送模

20、式:客户端主动模式l 引擎组成构造:本引擎由2个asp脚本文件:接收数据脚本文件(receivedengine.asp)和发送数据脚本文件(Refreshengine.asp)再通过 一个 全局信息高速缓冲 做为共享数据区 ,实现从客户端获取个人消息并发送全局消息。 l 引擎原理图全局消息高速缓冲信息1信息2信息3. 用户 用户 数据接收接 口 数据发送接 口 用户 用户 图(4) l 核心算法与重点代码的设计u 全局信息高速缓冲的实现我们用一个二维数组 构成一张二维表, 缓冲聊天内容, 其行 存储某一用户对另一个用户的一条聊天记录 ,其列存储 记录中的各个字段.其表结构如下: 高速缓冲二维表

21、标识记录唯一ID 说话者 说话对象 聊天内容 说话的时间 聊天方式 1 XX OO Hi 2004-05-27 On(私聊) 2 YY KK 你好 2004-05-28 Off(公聊) . 在这里我们使用 循环列队(环)这种数据结构形式实现高速缓冲的运转(如图5所示),此线性表首尾相接,由2个指针互相协调控制, 一个称为 front(列队头,在这里我们使用 Headpointer标识),另一个称为rear(列队尾, 在这里我们使用 Tailpointer标识); 图 5 (循环列队) a:初始状态 b:添加数据 c:删除数据其控制变量有: MsgHeadPointer 、MsgTailPoin

22、ter、Msg_ID(变量说明见3.1) 其操作包括:1. 创建一个空的缓冲CreateCache(MaxLines , MaxColumn , RoomAppName) 2. 初始化一个缓冲Init_Cache(cache , MaxLines , MaxColumn , RoomAppName) 3. 如果缓冲为空,则返回 TRUE,否则返回 FALSECache _Is_Empty(cache , RoomAppName) 4. 向队列中添加一条聊天记录AddToCache(cache , MaxLines , RoomAppName , Talker, TalkTo , Msg , C

23、hatMethod) 5. 获取缓冲中新的全局聊天消息GetNewestMsg(cache , MaxLines , RoomAppName ) 具体函数程序,请参考附录! 由于高速缓冲在整个聊天系统运行中是非常重要的共享数据区,所以我们使用Application对象保存高速缓冲数组. u 数据接收实现数据接收模块, 接收用户从客户端通过表单提交上来的聊天信息, 然后把他添加进高速缓冲. 主要利用ASP的 Request 对象截获表单数据,具体程序如下: 用户输入聊天内容 并发送到服务器端略在3.3详细介绍 -获取用户提交上来的信息 RoomAppName = request(RoomAppN

24、ame) 发送到目的聊天室的唯一标识名 Talker = request(Talker) 说话者 TalkTo = request(TalkTo) 说话对象 Msg = Server.HTMLEncode(request(chatmsgbox) 聊天内容 ChatMethod = request(private) 公聊=off 或 私聊=on 加入当前用户信息到高速缓冲(MaxLines是系统常数 参考3.1)1. AddToCache(cache , MaxLines , RoomAppName , Talker, TalkTo , Msg , ChatMethod) u 数据发送实现数据发

25、送模块, 由客户端浏览器每隔5秒钟, 主动刷新服务器端的数据发送页面, 发送程序把当前用户的所需的全局聊天信息从高速缓冲中取出并发送给客户端. 主要应用了 ASP 的Request 和 Cookie 技术获取 当前用户的在聊天室中的系统状态信息, 来判断发送的信息内容, 应用Application对象从高速缓冲中读取信息.具体程序如下: RoomAppName = request(RoomName) 获取更新信息的目的聊天室的唯一标识名-获取用户信息(变量说明请参考 3.1)-ChatNickName = request.Cookies(RoomAppName)(ChatNickName) C

26、hatRoomTrueName = request.Cookies(RoomAppName)(ChatRoomTrueName)ChatRoomAppName = request.Cookies(RoomAppName)(ChatRoomAppName)MsgLastLinePos = CLng(request.Cookies(RoomAppName)(MsgLastLinePointer)- 发送数据给 客户端获得程序生成的 需更新记录的 javascript消息数组 TheNewstMsg = GetNewestMsg(application(RoomAppName),MaxMsgLine

27、s,RoomAppName ) 显示新的全局聊天信息到客户端 略在3.4详细介绍 3.3 用户客户端聊天信息输入与发送模块设计l 功能说明: 此模块用于 用户输入聊天内容,并发送到聊天室里, 即实现在聊天室中发言的功能 l 操作流程图: 用户输入聊天内容 按回车键 或者 发送按钮 客户端发送程序验证内容并提交到服务器端程序 服务器端 接收提交信息并处理 l 代码的设计: 3.4 用户客户端全局聊天信息接收与显示模块设计3.5 全局聊天消息高速缓冲3.6 实例聊天室列表3.7 聊天室在线用户列表3.8 表情图释索引表3.9 聊天用户个人信息保存模块3.10 聊天室显示面板属性个性化设置模块3.10.1 聊天对象选择功能3.10.1 聊天者名字修改功能3.10.1 公聊私聊模式切换功能3.10.1 文字背景色前景色设置功能3.10.1 聊天面板屏幕显示字体设置3.10.1 自动滚屏设置功能3.11 登陆聊天室模块3.12 退出聊天室模块本文来自CSDN博客,转载请标明出处:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1