我需要使用PHP开发HTTP推送实现HTTP推(在PHP)与出,它发回一个消息到浏览器每20秒..,我需要在服务器上显示使用任何文库或插座
有没有什么办法可以在PHP中使用任何套接字或库实现http push?
我需要使用PHP开发HTTP推送实现HTTP推(在PHP)与出,它发回一个消息到浏览器每20秒..,我需要在服务器上显示使用任何文库或插座
有没有什么办法可以在PHP中使用任何套接字或库实现http push?
当然:不要让你的PHP脚本终止,只要你想保持连接打开。由于您每20秒产生一次输出,因此连接超时的可能性要小得多。
有很多方法来实现这一目标,包括阻塞(如睡眠()以下)或busy waiting,但最简单的解决办法是:
while(true){
generate_output();
sleep(20);
}
您可能需要处理在客户端的意外连接终止,但这是它的杰作。检查您的系统配置,查看您可以处理多少个打开的连接。 (在Apache中,看到的MaxClients)
至于客户端,看到这个答案https://stackoverflow.com/a/7953033/329062
做到这一点的唯一方法是使用WebSockets,“长轮询”,或一个AJAX请求每20秒(即使没有更新)。您的解决方案将取决于您想要支持哪些浏览器。例如,较新的浏览器支持Web套接字,但较旧的浏览器不支持。我会推荐研究Web套接字。对于这种情况,这是一个很好的解决方案。
我需要开发使用PHP的HTTP推送,它每20秒发送一条消息给浏览器..我需要在服务器上显示。 – user1234077 2012-02-26 17:07:47
正如Andrew所建议的那样,下面,通过JavaScript进行轮询通常是一种更好的解决方案,而不是推送运行,捆绑Apache连接。看看[Comet](http://en.wikipedia.org/wiki/Comet_%28programming%29)。 – ghoti 2012-02-27 12:40:31