摘要
采用浏览器的网上聊天室实际上是一个多人共同使用的CGI程序,其基本原理是将每个用户的发言通过浏览器传给系统,由系统收集处理后分发给特定用户。如何刷新发言内容是聊天室的关键技术,常见的方法是利用Html的Meta标签,如〈meta http-equiv=”Refresh"content=5〉,每隔5s就会刷新一次。这种方法简单有效,但刷新时会产生闪烁的现象,对用户造成困扰。
采用PHP编写的聊天室,为了实现不刷新,用户必须保持连线的状态。实现方法是在程序中设置无限循环,每隔一段时间就检查服务器上是否有新的数据。而发言数据不宜存放在文件中,否则频繁的IO操作对系统效率影响很大:可采用MySQL等数据库,以适应大批量用户的同时使用。
一个标准的聊天室页面由三个Frame组成,分别是显示在线用户的Online、用户发言和功能设置的Say及显示聊天内容的List。用户在Say Frame中敲入发言后按发送,数据经过处理后保存到Mysql数据库,同时被保存的还包括发言人、聊天对象及发言的时间。一旦有用户进入聊天室,List Frame就从数据库中将发言时间大于用户进入时间的发言提出显示出来。而后续显示新的发言的关键,在于显示聊天内容的那段程序是无限循环的。
出处
《微计算机应用》
2001年第2期F003-F003,共1页
Microcomputer Applications