关于如何用php来实现server push的讨论 server push的技术好像ie不支持吧,只有NS支持就是让客户端和服务器段保持不间断的联系现在一般象聊天室都使用客户端refresh的技术 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Server-Push作为一种编程方式,给人印象最深的就是“无刷新”聊天室。其实,Server-Push的应用远不止这一种方式。Server-Push可以实现音乐、动画,甚至视频传输。但由于兼容性(服务器端和客户端浏览器)问题,应用并不广泛。原理 Server-Push从名称就可看出是“服务器推技术”。Server-Push就是服务器不断将数据向客户端传输,推动客户端程序“前进”。拿聊天室说吧,服务器不断将新的发言推向客户端,客户端的浏览器不断将新的信息显示出来,这就达到“无刷新”的效果。实现方法 Server-Push与传统方式的不同之处有:1。HTTP报头不同。2。增加了“分界线”(boundary)3。禁止服务器端缓存4。多个内容部分用“分界线”隔开5。每个部分有独立的Content-type6。程序文件名必须为nph-*.cgi 下面就是正规的Server-Push输出信息:(#后为注释)Content-Type: multipart/x-mixed-replace;boundary=BOUNDARY #<="boundary"=后面是设置的“分隔标志”--BOUNDARY #《=这里是“分界线”Content-type: text/html #《=内容1的Content-type内容1--BOUNDARY #<=又一个分界线Content-type: text/html #《-内容2的Content-type内容2....程序开头要加入一行:$|=1;用来关闭缓存。程序文件名应为“nph-*.cgi”。兼容性处理 许多服务器不支持(如:Apache for win32),浏览器也不一定支持(Internet Explorer也不支持!)目前只有Netscape支持。您可能会问了,为什么用Internet Explorer也能进“无刷新”聊天室呢?这就是采取了兼容性处理。 IE不支持Server_Push的多个Content-type,那么我们就用一个Content-type,加上一些特殊的HTML代码达到“无刷新”。 做法与上面的代码基本相同,但只能有一个Content-type,并且输出一段HTML以后要执行一个脚本程序(脚本程序没有用途,只是让IE显示前面的HTML,可以是空的<script></script>)。这只是其中一种解决办法。 Server-Push作为一种编程方式,给人印象最深的就是“无刷新”聊天室。其实,Server-Push的应用远不止这一种方式。Server-Push可以实现音乐、动画,甚至视频传输。但由于兼容性(服务器端和客户端浏览器)问题,应用并不广泛。原理 Server-Push从名称就可看出是“服务器推技术”。Server-Push就是服务器不断将数据向客户端传输,推动客户端程序“前进”。拿聊天室说吧,服务器不断将新的发言推向客户端,客户端的浏览器不断将新的信息显示出来,这就达到“无刷新”的效果。实现方法 Server-Push与传统方式的不同之处有:1。HTTP报头不同。2。增加了“分界线”(boundary)3。禁止服务器端缓存4。多个内容部分用“分界线”隔开5。每个部分有独立的Content-type6。程序文件名必须为nph-*.cgi 下面就是正规的Server-Push输出信息:(#后为注释)Content-Type: multipart/x-mixed-replace;boundary=BOUNDARY #<="boundary"=后面是设置的“分隔标志”--BOUNDARY #《=这里是“分界线”Content-type: text/html #《=内容1的Content-type内容1--BOUNDARY #<=又一个分界线Content-type: text/html #《-内容2的Content-type内容2....程序开头要加入一行:$|=1;用来关闭缓存。程序文件名应为“nph-*.cgi”。兼容性处理 许多服务器不支持(如:Apache for win32),浏览器也不一定支持(Internet Explorer也不支持!)目前只有Netscape支持。您可能会问了,为什么用Internet Explorer也能进“无刷新”聊天室呢?这就是采取了兼容性处理。 IE不支持Server_Push的多个Content-type,那么我们就用一个Content-type,加上一些特殊的HTML代码达到“无刷新”。 做法与上面的代码基本相同,但只能有一个Content-type,并且输出一段HTML以后要执行一个脚本程序(脚本程序没有用途,只是让IE显示前面的HTML,可以是空的<script></script>)。这只是其中一种解决办法。 Server push——崭新的“推”技术,它是一种先进的服务器和客户机之间的通信连接方式,利用在服务器端的CGI脚本程序把数据源源不断地推向客户机,从而使客户机和服务器之间的交互性能大大提高。在中国计算机报电脑工作室中有介绍Server push,我们也搜集整理一些关于Server push的资料,供大家参考。 首先也来看看传统Client pull的工作方式,Client pull以 这样的HTML文档头来自动刷新页面,使用户的浏览器能不断地刷新以接受服务器传回的内容,那么用户就不得不忍受等待“tmie”值的痛苦,相信在中国电信的网速之下,大家对这个深有体会。 采用了Server push技术的服务器在客户机做出一个请求后,和客户机建立一个永久的连接,然后服务器会根据客户机的请求不断把数据包推向客户,这个推的过程是不间断的。由服务器推向客户机的数据在客户机的浏览器上会不断产生新的内容,而且不会产生Client pull那样的HTML文档头,从而大大减少了延迟的时间,向(服务器响应——客户机请求)同步迈进了一步。 实现Server push技术非常简单。Server push在服务器的CGI脚本声明HTML文档类型时,把传统的content-type:text/html改为content-type:multipart/x-mixed-replace;boundary=BOUNDARY这样的文档类型,就会反馈给用户一个Server push类型的连接。这是Server push和Client pull的根本区别。如果CGI脚本中提供了这样的HTML文档头,服务器在处理客户机请求调用CGI脚本程序时,就会把CGI脚本中指定的数据强行推给客户机。 Server push在生成页面时会采用很多的技巧来处理用户端浏览器页面的生成。主程序和传统方式没有本质的区别,但记得在脚本中加入print“Content-Type:multipart/x-mixed-replace;boundary=BOUNDARY”这样的文档头。应用在PERL写的CGI聊天室中有立竿见影之效,其速度和刷新方式和传统聊天室不是一个档次的 http://game.jztele.com/test/push.php经过一天的摸索,简单写了个推的东西,是PHP的,不过在刚开始打开页面时速度很慢,请个位高手分析此原码,以便进一步改善它,谢谢,!!<?//push.phpflush();while(1){ ob_end_clean();sleep(1); echo $i++."<br>";flush();}?>//////////就这么短,呵呵见笑了,不过如果运用得当,我想做一个server push 的WEB聊天室应该没问题的,不过就是在刚打开页面时非常慢,请各位高手诊脉~,谢谢 楼上的,能否给解释一下,我真是不懂呀,小弟是个新手,SLEEP我知道,可是FLUSH()是干什么用的还有那个ob_end_clean();也不知道呀 他写错了!!正确的是http://php2000.com/~uchinaboy/wdb/wdbread.php?forumid=3&filename=f_1此外,php2000的聊天实用的就是这个技术…… 内容已被编辑! 正则问题求答案。 KYPHPV1.1发布,欢迎大家下载 怎样将秒数转换格式? php 文件名、目录名或卷标语法不正确 关于php开发统计系统 PHP二维数据排序 关于一个实例类的问题 Upload File!!! 谁有站内关键字模糊查询的代码?紧急求救、在线等待!!!! php中的class可以对方法进行重载(override)吗? 当我配置php4时,拷贝msvcrt.dll到windows/system时,出现了问题。
,S
erver-Push的应用远不止这一种方式。Server-Push可以实现音乐、动画,甚至视频
传输
。但由于兼容性(服务器端和客户端浏览器)问题,应用并不广泛。
原理
Server-Push从名称就可看出是“服务器推技术”。Server-Push就是服务器不
断将
数据向客户端传输,推动客户端程序“前进”。拿聊天室说吧,服务器不断将新的
发言
推向客户端,客户端的浏览器不断将新的信息显示出来,这就达到“无刷新”的效
果。实现方法
Server-Push与传统方式的不同之处有:
1。HTTP报头不同。
2。增加了“分界线”(boundary)
3。禁止服务器端缓存
4。多个内容部分用“分界线”隔开
5。每个部分有独立的Content-type
6。程序文件名必须为nph-*.cgi
下面就是正规的Server-Push输出信息:(#后为注释)
Content-Type: multipart/x-mixed-replace;boundary=BOUNDARY #<="boundary"=
后面
是设置的“分隔标志”
--BOUNDARY #《=这里是“分界线”
Content-type: text/html #《=内容1的Content-type
内容1
--BOUNDARY #<=又一个分界线
Content-type: text/html #《-内容2的Content-type
内容2
....
程序开头要加入一行:
$|=1;
用来关闭缓存。程序文件名应为“nph-*.cgi”。
兼容性处理
许多服务器不支持(如:Apache for win32),浏览器也不一定支持(Internet
Ex
plorer也不支持!)目前只有Netscape支持。您可能会问了,为什么用Internet Ex
plo
rer也能进“无刷新”聊天室呢?这就是采取了兼容性处理。
IE不支持Server_Push的多个Content-type,那么我们就用一个Content-type,
加上
一些特殊的HTML代码达到“无刷新”。
做法与上面的代码基本相同,但只能有一个Content-type,并且输出一段HTML
以后
要执行一个脚本程序(脚本程序没有用途,只是让IE显示前面的HTML,可以是空的<
scr
ipt></script>)。这只是其中一种解决办法。
,S
erver-Push的应用远不止这一种方式。Server-Push可以实现音乐、动画,甚至视频
传输
。但由于兼容性(服务器端和客户端浏览器)问题,应用并不广泛。
原理
Server-Push从名称就可看出是“服务器推技术”。Server-Push就是服务器不
断将
数据向客户端传输,推动客户端程序“前进”。拿聊天室说吧,服务器不断将新的
发言
推向客户端,客户端的浏览器不断将新的信息显示出来,这就达到“无刷新”的效
果。实现方法
Server-Push与传统方式的不同之处有:
1。HTTP报头不同。
2。增加了“分界线”(boundary)
3。禁止服务器端缓存
4。多个内容部分用“分界线”隔开
5。每个部分有独立的Content-type
6。程序文件名必须为nph-*.cgi
下面就是正规的Server-Push输出信息:(#后为注释)
Content-Type: multipart/x-mixed-replace;boundary=BOUNDARY #<="boundary"=
后面
是设置的“分隔标志”
--BOUNDARY #《=这里是“分界线”
Content-type: text/html #《=内容1的Content-type
内容1
--BOUNDARY #<=又一个分界线
Content-type: text/html #《-内容2的Content-type
内容2
....
程序开头要加入一行:
$|=1;
用来关闭缓存。程序文件名应为“nph-*.cgi”。
兼容性处理
许多服务器不支持(如:Apache for win32),浏览器也不一定支持(Internet
Ex
plorer也不支持!)目前只有Netscape支持。您可能会问了,为什么用Internet Ex
plo
rer也能进“无刷新”聊天室呢?这就是采取了兼容性处理。
IE不支持Server_Push的多个Content-type,那么我们就用一个Content-type,
加上
一些特殊的HTML代码达到“无刷新”。
做法与上面的代码基本相同,但只能有一个Content-type,并且输出一段HTML
以后
要执行一个脚本程序(脚本程序没有用途,只是让IE显示前面的HTML,可以是空的<
scr
ipt></script>)。这只是其中一种解决办法。
接方
式,利用在服务器端的CGI脚本程序把数据源源不断地推向客户机,从而使客户机和
服务
器之间的交互性能大大提高。在中国计算机报电脑工作室中有介绍Server push,我
们也
搜集整理一些关于Server push的资料,供大家参考。
首先也来看看传统Client pull的工作方式,Client pull以 这样的HTML文档头
来自
动刷新页面,使用户的浏览器能不断地刷新以接受服务器传回的内容,那么用户就
不得
不忍受等待“tmie”值的痛苦,相信在中国电信的网速之下,大家对这个深有体会
。
采用了Server push技术的服务器在客户机做出一个请求后,和客户机建立一个
永久
的连接,然后服务器会根据客户机的请求不断把数据包推向客户,这个推的过程是
不间
断的。由服务器推向客户机的数据在客户机的浏览器上会不断产生新的内容,而且
不会
产生Client pull那样的HTML文档头,从而大大减少了延迟的时间,向(服务器响应
——
客户机请求)同步迈进了一步。
实现Server push技术非常简单。Server push在服务器的CGI脚本声明HTML文档
类型
时,把传统的content-type:text/html改为content-type:multipart/x-mixed-repl
ace
;boundary=BOUNDARY这样的文档类型,就会反馈给用户一个Server push类型的连接
。这
是Server push和Client pull的根本区别。如果CGI脚本中提供了这样的HTML文档头
,服
务器在处理客户机请求调用CGI脚本程序时,就会把CGI脚本中指定的数据强行推给
客户
机。
Server push在生成页面时会采用很多的技巧来处理用户端浏览器页面的生成。
主程
序和传统方式没有本质的区别,但记得在脚本中加入print“Content-Type:multipa
rt/
x-mixed-replace;boundary=BOUNDARY”这样的文档头。应用在PERL写的CGI聊天室
中有
立竿见影之效,其速度和刷新方式和传统聊天室不是一个档次的
经过一天的摸索,简单写了个推的东西,是PHP的,不过在刚开始打开页面时速度很慢,请个位高手分析此原码,以便进一步改善它,谢谢,!!
<?//push.php
flush();
while(1){
ob_end_clean();
sleep(1);
echo $i++."<br>";
flush();
}
?>
//////////就这么短,呵呵见笑了,不过如果运用得当,我想做一个server push 的WEB聊天室应该没问题的,
不过就是在刚打开页面时非常慢,请各位高手诊脉~,谢谢
SLEEP我知道,可是FLUSH()是干什么用的
还有那个ob_end_clean();
也不知道呀
http://php2000.com/~uchinaboy/wdb/wdbread.php?forumid=3&filename=f_1
此外,php2000的聊天实用的就是这个技术……