翻新时间:2013-12-18
PHP聊天室技术
PHP聊天室技术 PHP聊天室技术 信息技术论文 更新:2006-4-8 阅读: PHP聊天室技术
PHP聊天室技术
黄国辉
深圳商报社
摘要: 讨论了实现聊天室的各种技术,并以PHP为例讲解实际的编写过程。
关键词:PHP 聊天室 MySQL
1.前言
上网聊天是时下最流行的交友方式。各大网站推出的聊天室都各具特色。
聊天室主要分为WebChat、BBSChat两种。BBSChat是基于Telnet的Tcp协议,是BBS的附设功能,需要客户端Telnet程序。WebChat则采用浏览器方式,实际上是一个多人共同使用的CGI程序。其基本原理是把每个用户的发言通过浏览器传给系统,再由系统收集处理后分发给特定用户。
WebChat一般采用Server Push或Client Pull技术。两种技术的区别在于使用不同的方式将数据分发给用户,Server Push是由服务器将数据以多重MIME编码,推给(push)使用者端,目前较少网站使用这种方式。Client Pull则是用户从服务器拉(pull)所要的数据。
最常用的Client Pull就是利用Html语言的Meta标签http-equiv="Refresh" 的属性,每隔一段时间就检查服务器上是否有新的数据。例如<meta http-equiv="Refresh" content=5>,每隔5秒钟就会刷新一次页面。这种方法简单有效,缺点是刷新时会产生闪烁的现象;而且为了保持效率,每次刷新都会把旧的聊天内容清除,用户想查看或保留对话内容都很不方便。为此,采用JavaApplet作为聊天室的前端,利用刷新把从服务器Pull的数据通过JavaApplet来显示也是一种解决方案。还有就是本文要介绍的使聊天程序保持连线的方案。方法一,把聊天程序设置为无限大,就能使浏览器不停地保持下载的连线状态;方法二,聊天程序中存在着无限循环,因为可以方便地设置更高级的功能,所以在此选择采用。
Web服务器采用FreeBSD+Apache,原因是两者的组合具有最强的性能,而且花费为零。还需要考虑的是用什么方式来存放数据呢。用文件相对而言容易实现,但是多人使用,频繁地对同一文件进行IO操作,难免会影响效率,况且FreeBSD的IO性能不佳。可以考虑使用RamDisk,将文件整个放进内存,以提高速度。或者在内存中划分出一块高速空间用以数据存放。笔者使用的是数据库方式:MySQL。因为该数据库就是为大批量用户同时使用而设计,利用它可以省去设计高速空间操作的复杂编写,速度也可得到保证。如将整个数据库放进内存,效果更好。
程序用PHP+Html+JavaScript编写。聊天室主要是对Html的Form中的各种元素进行操作。JavaScript是基于对象的语言,对Html中的各种元素皆当作对象看待,所以每个元素的方法和属性都很丰富,操作比较方便。而PHP只有在Form经过Post后,将Form中的元素转成对应的变量,才能处理用户输入的数据。从交互性来说比较差,这也是使用JavaScript的原因。采用PHP的原因是因为比起其它CGI语言,其速度和安全性都较佳,开发也比较容易。
下载文档
网友最新关注
- 学游泳
- 我喜欢的一次春游
- 猜歇后语
- 我的双休日
- 一棵桔子树的自述 学洗碗 太阳能机器狗
- 《长袜子皮皮》
- 五官争功劳
- 我最崇拜孟姜女
- 百鸟乐园
- 我的假日
- 蚕宝宝
- 贪心的狮子
- Do都城之旅
- 寒假里的一件事
- 春天的校园
- 创建无吸烟学校倡议书
- 留守儿童爱心倡议书
- 大学院系党支部创先争优活动承诺书5篇
- 教师党员公开承诺书
- 保护眼睛倡议书
- 党组织创先争优承诺书
- 师德承诺书
- 2011年创先争优个人公开承诺书
- 我的党性分析
- 医学院文明修身倡议书
- 业务员团队倡议书
- 党员创先争优活动承诺书
- 个人廉政责任承诺书
- 县卫生系统廉洁从政公开承诺书
- 保护视力,保护心灵之窗
- 服装设计的国际宏观趋势及成因分析
- 对企业营销创新对策和要求综述
- 行为艺术中的身体叙事
- 探析欧洲语言学对美国语言学的影响
- 索绪尔的共时语言学与历时语言学
- 普世语言、王朝语言与民族语言
- 市场营销案例教学中的案例问题研究
- 企业营销管控的思路和方法
- 快速消费品市场分析及其营销渠道管理
- 简析公共领域视角下的公民文化
- 如何提高高职院校韩语专业学生的韩语听力
- 电力企业的营销对策概述
- 企业文化营销的冲突表现
- 浅谈提高高职院校学生韩语会话能力的探索
- 语料库语言学对语言学理论的贡献分析
- 《一个中国孩子的呼声》教学设计十三
- 《一个中国孩子的呼声》第一课时教学设计
- 《和我们一样享受春天》教学设计三
- 《一个中国孩子的呼声》教学设计十
- 《一个中国孩子的呼声》教学设计十一
- 《和我们一样享受春天》教学设计二
- 《一个中国孩子的呼声》教学设计十二
- 《触摸春天》教学设计
- 《一个中国孩子的呼声》教学设计十四
- 《和我们一样享受春天》教学设计四
- 《触摸春天》教学设计二
- 《一个中国孩子的呼声》词句教学
- 《触摸春天》教学设计三
- 《触摸春天》教学设计一
- 《和我们一样享受春天》教学设计一