软件生产实习报告书聊天室.docx
《软件生产实习报告书聊天室.docx》由会员分享,可在线阅读,更多相关《软件生产实习报告书聊天室.docx(10页珍藏版)》请在冰豆网上搜索。
软件生产实习报告书聊天室
软件生产实习报告书
网络聊天室的设计与实现
学号:
姓名:
XXX
指导老师:
XXX
完成日期:
2015年3月20日
目录
前言.........................................................................................................3可行性研究.............................................................................................41.1功能需求.....................................................................................41.2相关技术与开发工具介绍........................................................4需求分析.................................................................................................62.1功能要求.....................................................................................62.2性能要求....................................................................................72.2.1系统需要解决的主要问题...............................................72.2.2系统具备的功能...............................................................8详细设计.................................................................................................93.1运行流程图................................................................................93.2模块及代码................................................................................93.2.1登陆及退出登陆..............................................................93.2.2用户注册模块及代码...................................................113.2.3聊天主页模块及代码...................................................12测试.......................................................................................................144.1登陆界面测试..........................................................................144.2注册页面测试.........................................................................144.3聊天室界面测试......................................................................15致谢.......................................................................................................16参考文献...............................................................................................16
前言
在快速信息化的今天,越来越多的人使用网络聊天代替了传统的书信,口头交流。
聊天室可以让来自世界各个不同的地方的人进行即时的交流。
从而省略了书信等传统方式需要的时间和所消耗的精力。
网络聊天室是用户比较喜欢的一种WEB应用程序,借助聊天室和他的留言系统,用户可以及时互通信息,交流思想.本系统主要采用了基于B/S(Browser/Server,即浏览器/服务器模式开发的简易聊天室系统。
本系统是采用了PHP技术开发的动态网站。
可行性研究
1.1功能需求
网络聊天室工作主要是用户的聊天功能,包括数据输入、接收、输出和保存等功能,要能高效、准确地完成这些功能,并要达到界面美观友好、使用方便。
使用方便、高效的MYSQL数据库,以相对成熟的thinkPHP为框架,能制作出功能强大的管理系统,因此选用PHP来制作网络聊天室,实现聊天,发表评论等功能。
1.2相关技术与开发工具介绍
PHP是当今最流行、成熟的WEB后台开发语言,它独特的语法混合了C、Java、Perl以及PHP自创新的语法。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
而且它是一个开源的、免费的、跨平台的语言【1】。
MYSQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:
关系数据库管理系统应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言【2】。
Apache是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使
用,是最流行的Web服务器端软件之一。
它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中【3】。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库、RoR的ORM映射和ActiveRecord模式。
它可以快速,简洁的设计一个网站。
需求分析
2.1功能要求
通过聊天室,用户可以自定义个人昵称,可以以不同的身份实时发送聊天信息,发送信息也可以进行各种设置包括聊天者的表情及文字颜色,功能更强大的聊天室不仅提供了文字聊天功能还支持视频和音频、传送文件、留言板等功能。
聊天室的特点就是要求能够进行实时显示出聊天者所谈的内容。
所谓“实时”就是指在同一个聊天室的不同使用者,可以在短时间里立刻看到其他人的发言,这与我们所说的论坛有很大的不同。
在PHP没有得到广泛应用之前,聊天室大多是用CGI程序或者JAVA开发的APPLET维护的,要开发一个聊天室系统是很费时费力的。
现在我们可以使用PHP快速、简单地设计出一个可以相互对话的典型聊天室程序,我们使用HTML代码加上PHP程序就可以构建出最基本的聊天室了。
网上聊天室作为用户的最为喜欢的WEB应用程序,其特点就是强调信息的即使性和信息发布式的多样性。
从功能上讲,网上聊天室系统与论坛系统非常相似,但聊天室系统有自己的特点。
它强调信息的即使性,在聊天室保持连接的状态下,要求能够实时显示出聊天者所谈的内容。
2.2性能要求
开发一个完整的聊天室要用到许许多知识,在开发以前首先要知道开发的程序要满足哪些要求及实现的功能是什么。
设计一个功能完善的聊天系统,工作量是非常庞大的,但设计时一般有以下几个问题需要我们注意。
2.2.1系统需要解决的主要问题
在规划设计一个聊天室时,首先要确定好谈话内容存储方式,即在客户机上显示即使谈话的内容应以什么方式存储在服务器中。
PHP可以用两种形式实现聊天室内容的存取:
1用读写数据的方法实现。
这种方法相对比简明,但服务器频繁读写数据库负担很重
2用读写文本文件完成.这种方法适合简单的聊天室。
由于PHP对文本文件操作的指令远不如ADO提供的对数据库操作的指令多,所以利用ADO,PHP能灵活的操作数据库,如插入、删除、更新、查询等等。
本设计选择了MYSQL数据库来存储谈话的内容。
聊天室设计的性能的好坏的另一个重要标志就是聊天室成员的动态刷新。
因为许多用户在退出聊天室的时候并不是标准的退出也就是说并不从退出连接推出的,这样就会带来很多的麻烦,因为服务器并不知道用户已经离开了。
因此需要建立一个在线用户数据库,每隔一段时间检查一次,确定用户是否最后一次发言到现在已经超时,如果超时就自动将用户删除。
但是每次用户发言的时候必须把发言时间写入数
据库。
2.2.2系统具备的功能
本聊天室主要实现了以下功能:
·用户注册登陆聊天室
·聊天室把语句写入数据库
·浏览器不断的对数据库进行刷新读取·实时更新在线的用户
·对用户留言进行查看和管理
详细设计
3.1运行流程图
3.2模块及代码
3.2.1登陆及退出登陆
display(;
}
/**
*处理登陆数据
*/
publicfunctionloginHandle({
//dump($_POST;
if(!
$_POST
$this->error('warning.......';
$user=M(user->where(array('account'=>$_POST['account']->find(;
//dump($user;die;
if($user{
$pwd=md5($_POST['pwd'];
if($pwd==$user['pwd']{
session('account',$user['account'];
M(user->where(array('account'=>$_POST['account']->setField('status',1;
$this->success('login.....',U(GROUP_NAME.'/Index/homePage';}else{
$this->error('wrongpassword,pleasetryagain...';}
}else{
$this->error('wrongaccount,pleasetryagain...';}
}
/**
*退出登录操作
*/
publicfunctionlogout({
M(user->where(array('account'=>session('account'->setField('status',0;
cookie('account',null;
$this->success('logouting...',U(GROUP_NAME.'/Login/index';}
}
?
>
3.2.2用户注册模块及代码
display(;
}
/**
*用户注册表单处理
*/
publicfunctionregisterHandle({
//dump($_POST;
if(empty($_POST
$this->error('warning...';
if(!
$_POST&&empty($_POST['account']&&empty($_POST['pwd']{
$this->error('warning....';}else{
$pwd=md5($_POST['pwd'];
//echo$pwd;die;
$data=array('nickname'=>$_POST['nickname'],'pwd'=>$pwd,'account'=>$_POST['account'];
$register=M(user->data($data->add(;
if($register{
$this->success('registersuccess!
turningpage....',U(GROUP_NAME.'/Login/index';
}else{
$this->error('false,pleasetryagain';
}
}}
}
?
>
3.2.3聊天主页模块及代码
display(;
}
/**
*利用ajaxreturn以JSON方式返回聊天内容数组
*/
publicfunctionajax({
//var_dump($_POST;die;
$data=array(;
$Model=newModel(;
$data['content']=$_POST['content'];
$data['time']=time(;
$data['timee']=date('Y-m-dH:
i:
s',time(;
$data['sender']=session('account';
//var_dump($data;die;
$dd=M(msg->data($data->add(;
if($dd{
$dataa=M(msg->order('iddesc'->limit('10'->select(;
$this->ajaxReturn($dataa;
}
}
/**
*刷新时获取最新五条聊天内容和在线用户
*/
publicfunctionhomePage({
$this->msg=M(msg->order('iddesc'->limit('10'->select(;$this->user=M(user->where(array('status'=>1->select(;$this->display(;
}
/**
*即时返回最新五条聊天内容
*/
publicfunctionfresh({
$data=M(msg->order('iddesc'->limit('10'->select(;$this->ajaxReturn($data;
}
/**
*即时返回在线用户
*/
publicfunctionfreshUser({
$dat=M(user->where(array('status'=>1->select(;$this->ajaxReturn($dat;
}
}
?
>
测试
4.1登陆界面测试4.2注册页面测试
4.3聊天室界面测试
致谢在本次课程设计过程中,冯老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。
无论在理论上还是在实践中,都给予了我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有很大的帮助,在此期间他给我的的论文提出了大量有价值的建议,并从繁忙的工作中抽出时间给予指导,在此向冯老师表示衷心的感谢。
参考文献【1】潘凯华/刘欣/杨明,精通PHP的24堂课【2】编辑.MYSQL[DB/OL].【3】鸟哥.WWW伺服器[EB/OL].http:
//linux.vbird.org/linux_server/0360apache.php