我对运行 Web 服务很感兴趣,虽然我可以通过传统的 AJAX 实现,但使用更连续的数据流(如长轮询或 Comet 等)会更好。
我知道 Comet 实际上要求服务器端每个连接都有一个进程,但我想知道如果我通过 nginx 的 HTTP 服务器推送类型设置进行设置,我是否能够通过 FastCGI 在 PHP 上运行后端,而不会陷入太多麻烦,因为一次需要很多 PHP 连接。我知道大多数用户不太看好 Comet 的 PHP,因为它通常将 1 个连接绑定到 1 个 PHP 进程,但我想避免在这一点上转换语言。
如果它是相关的并且有帮助,该应用程序不是聊天类型的应用程序,而是类似于 Google Apps 的应用程序,其中多个用户可以在单个文档上工作,并且我希望能够尽可能接近实时地向同一文档中的其他用户显示更改。
提前致谢 :)
答案1
对于初学者来说,使用 nginx 推送模块比 apache 的方法要好得多http://pushmodule.slact.net/
我已经使用它在 1 台服务器上维护了 30k 个测试连接,通过向推送模块发送长轮询并向 php 发送其他请求。
请记住使用 websockets,因为浏览器会不断升级以支持它。
希望这可以帮助
答案2
看一眼http://migratory.ro。它是高度可扩展的 Comet 服务器(从入门级服务器扩展到超过 100 万用户)并且具有 PHP 服务器端集成。