聊天室系统
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
第1章 绪论
Internet是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为Internet上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。如今,人们不仅可以在网上查询自己需要的资源,而且可以通过网络进行实时的沟通。从实时性和有效性上都超过了用信件和 E—Mail,并且在费用上要低于电话。因而各种聊天服务备受用户青睐,在这方面的开发与应用也较多,聊天服务也成为互联网提供的重要服务之一,因此,建立一个好的在线交流聊天系统十分重要。互联网的大多数网站都建有聊天室,并且有专业聊天网站提供聊天服务。
网上聊天系统是为人们进行交流和联系提供的一个平台。利用现代的网络资源优势和技术优势,通过提供完善的网上聊天系统的管理,以达到增进人们与人们之间的信息交流和沟通的目的,并以此加快人们的信息化建设。
近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面,使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯。网络聊天系统作为一种方便人们之间联系的实用系统便应运而生。网络聊天系统是为人与人之间进行交流和联系提供的一个平台。通过提供完善的聊天服务和规范的管理,可以达到增进人与人之间的感情,促进人们之间的沟通,方便人们联系的目的;同时本系统可以拉近人与人之间的距离,丰富人们的业余时间,为人们在网络中交友提供了便捷的渠道。 copyright think58 [资料来源:www.THINK58.com]
我们觉得随着计算机网络日新月异的发展,人们的交流方式越来越多,传统的交流方式,如:信件、电报、电话等已经难以满足人们的交流要求,在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。两台计算机之间进行即时通讯、发送文件等交流方式已经成为时代的潮流。因此出现了QQ等聊天工具。然而QQ等聊天工具虽然方便、实用,但是,娱乐功能太多,有很多吸引人的娱乐功能,从一定程度上来说,是一种娱乐工具,不能作为用于作为即时通讯、文件共享的专用工具。目前,用于实现单一的即时通讯、文件共享的软件实在太少,并且,它们中大部分都是绝对的C/S模式,对远程服务器有非常大的依赖性,没有彻底实现点对点的交流。
在常见的聊天室开发中,有基于 ASP、基于 socket、基于 JAVA开发的聊天室,本系统采用基于.NET的 ASP.NET开发。.NET是 Microsoft推出的基于 Internet的应用程序开发平台,通过.NET可以将用户数据存放在网络上 ,并且随时随地使用户可以使用与.NET兼容的设备访问所有重要数据,使以前的 web站点信息“孤岛”变成了“组合体”,.NET平台构成了独立于语言,可在 .NET兼容的各种设备上运行的应用程序的基础。因此,采用.NET开发在线聊天系统可以提高开发效率和系统性能。
think58 [资料来源:THINK58.com]
基于.NET平台的 ASP.NET支持强类型语言,通过继承机制来支持代码的重用,ASP.NET页的代码可以与 HTML设计和文本分离,比 ASP页更整齐,而且执行速度比ASP页快。
ASP.NET 是基于通用语言的编程框架,使用它可以在服务器端架构强大的网络程序。ASP.NET 在设计过程中充分考虑到程序开发效率问题。可以使用所见即所得的HTML 编辑器或者其他的编程工具来开发ASP.NET 程序,包括Microsoft Visual Studio.NET 版本。可以将设计、开发、编译、运行都集中在一起,大大加快了ASP.NET 的开发效率。ASP.NET 中共有两个编程模型:Web Form和Web Service。
由于ASP.NET 是继承ASP 而开发出来的,所以在语法上,ASP.NET 也沿用了ASP 的语法。ASP.NET 支持3 种程序语法:VB,C#,Jscript。在本次设计中采用了C#语法,Windows XP Server操作平台。
网上聊天系统是常见的,也是比较有代表性的 Internet应用系统之一,其实现的难点是聊天怎样保存聊天内容以及怎么样将聊天的信息及时快捷地在服务器和用户之间进行传递和共享。目前常见的聊天内容保存方式有三种:利用数据库直接保存聊天内容;利用文本文件保存聊天内容和利用 Application对象保存聊天内容。这三种聊天内容保存方法的基本过程和开发的难易程度相似。因为在聊天过程中客户端需要频繁地向服务器端读写信息,而数据库和文本文件的读写都需要消耗一定的服务器资源,速度相对Application要慢一些 ,因此网上聊天系统一般利用 Application对象存储聊天过程中的相关信息。 think58 [资料来源:THINK58.com]
系统可行性分析
可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。
2.2.1 技术可行性分析
经过认真的讨论分析,综合各种计算机高级语言的特征和适应范围,最终
我们决定选ASP.NET来完成毕业设计,下面就技术可行性方面,对其作一简要
介绍。
技术上的可行性分析主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该聊天系统采用了Browser/Server模式进行开发。
数据库服务器选用SQL Server 2000数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
2.2.2 时机可行性
think58.com [来源:http://www.think58.com]
目前,网络已经遍布全球,人们与人们之间的竞争日趋激烈,人们与人们之间的竞争已经上到一个新的高度,那就是信息化战争。最新的信息就是最好的竞争手段的实力,网上聊天系统就是获取最新信息的一个好途径。因此,建立一个网上聊天系统是事在必行。 综上所述,此系统开发目标已明确,在技术和经济等方面都可行,并且投入少、见效快。因此系统的开发是完全可行的。
2.3 系统功能需求分析
在可行性分析阶段已经粗略的研究了该项目的需求,并分析了开发平台及软件的可行性,但为了准确的确定目标系统必须做什么,了解用户的明确需求,在相关部门进行了详细的调研, 进一步明确了作者所实现子系统的功能。
前台聊天室页面:为用户提供聊天场所,可对网站风格、广告链接等进行设置;用户可以根据个人习惯选择字体、文字颜色和表情等;具有私聊功能,私聊内容仅私聊双方可见;可手动清除聊天内容。
客户端处理部分 :获取界面元素;得到聊天内容;与服务器交互 ;更新客户端页面;响应用户事件。
服务器端响应部分:提供聊天室界面元素信息;获得提交数据;数据合法性验证;聊天内容入库;返回聊天内容。
[资料来源:http://www.THINK58.com]
(1) 在线聊天系统功能概述
在线聊天系统具有如下功能:建立用户注册信息、用户登录、用户进行聊天(公聊、私聊)、用户退出聊天。聊天页面功能分区为讯息区(显示聊友对话内容)、在线用户vr(显示聊友的头像、昵称)、发言区(让聊友能够按照个性化风格来发表自己的观点,提供让聊友选择聊天对象、密谈和清除发言的功能)。
(2 )聊天系统功能模块
建立数据库连接
本系统采用的数据库是SQL Server 2000,首先要安装SQL Server 2000。在安装的SQL Server过程中,创建一个登录sa,密码为空。
主要操作:安装SQL Server 2000组件、安装服务器、填写本地计算机、新的SQL Server实例或安装客户端工具、安装服务器和客户端、填写公司与名称、接受协议、域用户帐户(例如可设用户名sa,密码为123456)、进行身份验证等
安装后,建立一个名为Chat的数据库,保存注册的用户信息和聊天内容。
在ASP.NET2.0的应用程序中添加一Web.Config文件。配置数据库连接字符串的程序代码如下:
<connectionStrings>
<add name="SQLCONNECTIONSTRING"
connectionString="data Source=." copyright think58 [资料来源:http://THINK58.com]
database= Chat; user id=sa; pwd="
providerName="System.Data.SqlClient"></add>
</connectionStrings>
其中:data Source是服务器的名字。
若你使用的是“本地系统帐户”,身份验证是“Windows 身份验证模式”,则无用户名和密码,配置数据库连接字符串的程序代码如下:
<connectionStrings>
<add name="SQLCONNECTIONSTRING"
connectionString= " Integrated Security=SSPI;
Persist Security Info=False;
Initial Catalog= Chat "
providerName="System.Data.SqlClient"></add>
</connectionStrings>
4.3 系统功能的详细实现
4.3.1信息的组织、存储、共享的实现
在实际应用中,聊天室程序并不需要存储所有聊天者所说的所有话,而仅需存储正在室内的聊天者们最近所说的若干句话(视系统特点、程序制作者风格等而定,一般在20- 60句话不等,当然能让聊天者自己在一定的范围内进行选择设定为最好),这些信息也无须作长期永久性的存储。因此,我们可舍弃磁盘文件及后台数据库的方法,直接使用内存进行操作,这样可大大提高信息的读写速度,从而能较好地解决聊天室的速度瓶颈问题。
think58
同时,这些信息经过组织存储后,在聊天者的浏览器端显示时要求具有顺序性,为了便于显示、加快显示速度,对这些信息要求具有操作的连续性。不管在何种语言中,数组是能同时满足这两项要求的数据结构之一。
在聊天室程序中,完成了信息的组织存储,仍有另一关键技术待解决:如何能在多个程序或一个程序的多个运行实例之间进行信息共享。这一技术在不同的编程语言中有不同的解决思路,如共享内存,数据文件;或者使用服务器/客户模式程序实现在多个程序间完成数据交换。
由于Application对象的设置值为应用的所有用户共享,我们可以用它来保存聊天室的发言。为了便于处理,引入一个数组来存放发言,在global. aspx文件的Application- On-Start事件代码中定义数组并将其赋给一个Application对象,数组的大小定为12,是为了限定显示行数为12行,保证用户阅读信息的方便,不用拉动垂直滚动条。利用模12运算按循环队列机制来填写数组,并将最新录入的发言显示在最底部。
为了防止两个用户为写入发言同时对Application对象变量修改,从而导致一个用户的所作的修改被另一个用户的操作所覆盖,必须解决多用户并发写入问题,Application对象的Locked属性可以用来只允许当前用户编辑Application对象的值,操作结束必须用UnLocked来释放其对Application对象的独占。如果在加锁时有其他用户请求编辑Application对象,则这些用户要排队等待,直到Application对象被解锁。为了处理方便,在该程序中创建了Application对象变量的本地引用,这样做是为了简化代码,使用简短的本地变量而不是繁琐的名字。 think58 [资料来源:www.THINK58.com]
4.3.2 登录功能的实现
要实现登录的功能就是在用户输入用户名的时候判断是否为空或者是否用户名重复,如果是则不能进入聊天系统,要求用户重新输入,否则用户进入聊天室。这里只需要一个判断语句就可以完成,把表单中的username文本框中的内容存入username变量中,并判断username变量是否为空,如果是则返回登录界面;如果不是则把“欢迎‘某某’参加聊天。”这句话存入application(“show”)变量中(这样同时实现了系统公告)。并通过
session("sname")=username
application("sname")=username
application("allname")=username&application("allname")
来获得所有人的名字,最后使用返回到聊天界面。
4.3.3 人员列表的实现
人员列表的实现就是把在index.asp中存入application("allname")中的名字使用<%=application("allname")%>显示出来,在这里利用
<%if b1="刷新列表" then response.redirect("nametable.aspx") end if %>
实现手工刷新。
[资料来源:http://THINK58.com]
上一篇:在线聊天室系统
下一篇:基于C#开发的学生档案管理系统