私は、Cometdや単純な彗星のようなアプリケーションの目的を、単純なlongpollingのようなコードや無限ループのようなコードで終わらせることはできません。標準的なロングポーリングよりも彗星ソフトウェアの利点
$time = time();
while(time() - $time < 30) {
if ($query) {
$shapes = ...;
echo json_encode($shapes);
break;
}
usleep(25000);
}
lighttpdやNGIXのような複数の要求に対して設計されたWebサーバー上で動作します。
多分私は彗星のサービスのドキュメントを理解していないかもしれません。私は上記が「彗星」の要求であることを知っていますが、なぜ彗星のようなものが存在するのですか、彼らは何をより良くしますか?
1つの例では、応答の間に250 msの遅延がありません。また、アクティブな接続ごとにPHPプロセスを別にする必要はありません。それらのものはかなり重いです。同等のPHPロングポーリングソリューションよりも、より多くの彗星接続をサーバごとに開くことができるはずです。 –
@frank apacheは、接続ごとにスレッドを残す唯一のWebサーバです。 lighttpdは実際にはマルチスレッド接続に設計されています。 – austinbv
PHP自体は実際にはスレッドセーフではありません - 確かに、多くのPECLモジュールはそうではありません。 lighttpd/nginxでは、アクティブな接続ごとにPHP CGI procを実行しないでください。 –