PHP 中的 Comet:挑战和解决方案
使用 PHP 后端实现实时聊天可能会带来一定的挑战,特别是在 Comet 技术方面。人们担心 PHP 在这方面的限制,因为 Comet 需要与每个浏览器客户端保持持久连接。
传统上,使用 Apache 的 mod_php 意味着每个客户端都会全职占用一个 Apache 子进程。这带来了可扩展性问题,因为处理大量并发连接可能会变得难以承受。
虽然 FastCGI 可能看起来是一个潜在的解决方案,但它无法解决根本问题。具体来说,每个传入 Apache 的请求都会占用一个工作线程,直到完成为止,这在 Comet 上下文中可能会很长一段时间。
此外,PHP 本身限制了 Comet 的使用,因为它缺乏恢复所需的功能comet 请求触发事件发生时。 PHP 不支持提供此功能的延续。此功能的唯一已知实现是在基于 Java 的服务器(例如 Apache Tomcat)中找到的。
作为一种潜在的解决方法,建议使用负载均衡器(例如 HAProxy)在 Apache 和 Tomcat 之间分发传入请求支持 Comet 的服务器(例如,基于 Java 的),可以更有效地处理持久连接。
以上是PHP利用Comet技术能否有效实现实时聊天?的详细内容。更多信息请关注PHP中文网其他相关文章!