3
我无法弄清楚我的生活像Cometd或简单彗星的应用程序的目的,就像一个简单的longpolling请求与PHP和一个代码如此的代码无限循环彗星软件优于标准长轮询
$time = time();
while(time() - $time < 30) {
if ($query) {
$shapes = ...;
echo json_encode($shapes);
break;
}
usleep(25000);
}
在为多个请求设计的网络服务器上运行,如lighttpd或NGIX。
也许我只是想知道彗星服务的文档。我知道上面是一个“彗星”的要求,但为什么像cometd这样的东西存在,他们做的更好。
其中之一是,在你的例子中,响应之间不会有250毫秒的延迟。另外,您不必为每个活动连接都有一个完整的PHP进程。这些东西很重。您应该能够在每台服务器上打开更多的彗星连接,而不是使用等效的PHP长轮询解决方案。 – 2011-04-27 20:18:11
@frank apache是唯一为每个连接留下一个线程的网络服务器。 lighttpd实际上是为多线程连接而设计的。 – austinbv 2011-04-27 20:31:58
尽管PHP本身并不是真正的线程安全的 - 当然,许多PECL模块并不是。使用lighttpd/nginx,你不会得到一个为每个活动连接运行的PHP CGI过程吗? – 2011-04-27 22:13:25