PHP实现服务器推技术的聊天室(2)_PHP应用_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

PHP实现服务器推技术的聊天室(2)

作者:黑客防线网安PHP维护基地 来源:黑客防线网安PHP维护基地 浏览次数:0

黑客防线网安网讯:    p;               echo $msg;           }           $new_mesg = null;      }        } } function getNewMesg(){ //通过查询数据库,或者共享内存,来获取现在的聊天室大厅的内容。 ...

    p;               echo $msg;
          }
          $new_mesg = null;
     }     
  }
}

function getNewMesg(){
//通过查询数据库或者共享内存来获取现在的聊天室大厅的内容
//返回一个数组,包含所有的新的聊天内容
}

 这样就实现了一个简单的使用服务器推技术的聊天室的框架
 当然,关于实时输出,还有一些其他的限制,比如在PHP5手册中讲到的:
个别web服务器程序,特别是Win32下的web服务器程序,在发送结果到浏览器之前,仍然会缓存脚本的输出,直到程序结束为止。

有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。

甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容,并且在接受到 </table> 标记之前,不会显示出整个表格。

一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面,所以必须发送一些额外的空格来让这些浏览器显示页面内容。

 接下来,我贴一个很有趣的代码,有兴趣的同学,可以试试:
header(’Content-type: multipart/x-mixed-replace;boundary=endofsection’);
print " --endofsection ";
$pmt = array("-", "\", "|", "/" );
for( $i = 0; $i <10;$i ++ )
{
        sleep(1);
        print "Content-type: text/plain ";
        print "Part $i ".$pmt[$i % 4];
        print "--endofsection ";
        ob_flush(); //强制将缓存区的内容输出
        flush(); //强制将缓冲区的内容发送给客户端
}
print "Content-type: text/plain ";
print "The end ";
print "--endofsection-- ";
  使用firefox打开,看看你看到了什么。
  这个例子,使用了ob_flush(), 这样可以在代码中控制缓存区内容的输出时机,更加灵活一些。

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-13930-1.html
网站维护教程更新时间:2012-03-30 05:06:01  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer