php开源嘛
首页 | English | MySql数据库 | Php编程 | 建站杂烩 | 系统服务器 | 资源共享 | 专题 | 才桀网 | 支持论坛
  当前位置:主页>Php编程>文章内容
php程序开发:PHP聊天室技术……
来源:phpchina 作者:本站整理 发布时间:2008-06-07  

  因为程式无限循环,在每次循环中输出的发言是先置入输出缓冲区内。通过flush()马上把缓冲区的内容向用户的List Frame送出,达到了实时的聊天效果。循环最后要释放Mysql结果集占用的内存,否则因为无限循环的缘故,系统资源很快会被耗尽。

  用户在Login后将建立一个Online的表用于在线用户的统计,主要是为了防止User表过大,程式中频繁用到的检索会拖慢系统的运作。这其中用的最多的是Online Frame,在采用Client Pull的Refresh Meta,每隔一段时间就会查询Online表,以刷新在线的用户。假如用户不发言超过规定时间,系统会调用自定义函数将用户设为TimeOut,强制将其退出聊天室。

3. 用户功能简介
  用户的功能配置在Say Frame中,能够选择发言贴图、说话的语气等。发言经过特别的处理后存储到Mysql,例如选择了一个贴图后,系统将添加到发言的前面,就能够实现贴图的效果。
  对于聊天室常用到的Emote,例如用户A输入“/hello”按发送,List Frame中显示出来的是“用户A愉快地和大家打招呼”,为了保持效率,用户输入的Emote会原文直接保存到数据库,而解析转换的工作由List Frame来完成。

  悄悄话只有自己和聊天对象能够看到,实现上因为发言预先保存有发言人和聊天对象,只要做一个简单的判断即可。更有聊天室常有的屏蔽某用户发言的功能,通过配置一个临时的阵列来实现,没必要保存在用户的数据库中。

  聊天室人多的时候,大家争先发言常使人眼花缭乱,这时能够选择是否屏蔽无关的发言,即意味着只要不是对任何人和自己的发言将不会显示出来。当然,因为系统会用特别的颜色来标识和自己有关的发言,就算不选择该功能,用户还是能快速地从众多发言中找到和自己相关的。

  用户能够在特定时间(系统比较空闲时)将当天和自己有关的发言打包。因为存储发言的表数据增长速度很快,为保持运行效率,系统隔天就会把他复制后清空。这样用户检索打包发言内容就不会影响聊天系统的运作。

  出于安全的考虑,聊天室的管理功能是单独的,并没放在聊天页面中。主要有用户资料管理和将捣乱用户Kick Out(踢人)两种功能。将用户踢出聊天室后将使他在一定的时间内不能再进入聊天室。

  聊天室的安全需要虽然不象电子商务那样高,但假如用户被冒名顶替、用户的发言被窃听,或乱踢人,是很令人不快的。用户都要在Login中填写名字和密码才能进入聊天室,但是通过查看Login的源代码,虽然不能看到Php的部分,Htnl部分的源码却显示Login是调用Chat.php程式从而进入聊天室的。所以为了防止用户直接进入聊天室,系统会首先判断新建立的聊天室是否由Login产生的,不是则退出。同理,在聊天室的List Frame和Post Frame也可加上这样的防护。当然,在List Frame和Post Frame中检查用户的身份和密码,就万无一失了,只是加重了系统的负担。
  综上所述,能看到系统的源代码无疑是危险的开端,所以系统的编写尽量用看不到源码的Php;配置由Login开启的聊天室隐藏了浏览器的工具条、状态栏等,并且屏蔽了鼠标的右键及快捷键。

4. 总结
  用Php编写的聊天室具备高效稳定的特点,是编写网络交互程式的最好选择。


(阅读次数:
共2页: 上一页 [1] 2 下一页
上一篇:IT创业前要深思的八大问题{建站借鉴}   下一篇:五种MySQL数据库可靠性方案的分析和比较
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·PHP生成验证码图片的源代码
·PHP会话对(Session)使用入门
·Php部分常见问题总结[bug]
·php正则表达式的快速学习方法
·高手传经:学习PHP重在坚持
·用 PHP 读取文件的正确方法
·PHP对文本数据库的基本操作方法
·用php生成静态页面的php函数
·讲解PHP+MySQL的分页显示示例
·完整且安全的PHP用户登录系统(转
·PHP面向对象技术OOP(全面讲解)、
·用PHP构建一个简易监视引擎
  相关文章
·PHP中常用email校验语句的解释。
·PHP开发:ZendStudio调试功能使
·in_array() php中的数组函数……
·Php内部函数:strpos()与strrpos
·通用PHP动态生成静态HTML网页的
·PHP使用zlib扩展实现页面GZIP压
·PHP动态网站开发中常用的8个小技
·增加PHP的Session存储和处理能力
·PHP画一个可以更换文字的按纽
·PHP面向对象技术OOP(全面讲解)、
·面向对象OOP的5原则:接口隔离原
·依赖倒置原则(DIP) OOP面向对象.

关于我们 | 本站声明 | 友情连接 | 诚邀加盟 | 网站地图
版权Power by DedeCms   技术支持QQ =>> 罗江游鱼   Jacking  后台登陆
Copyright @ 2007 公司地址:柳州市东环路268号 邮编:545006 电话:15920389818 桂ICP备07006725号