PHP 可以支持 Comet 实时消息传递吗?
可以考虑使用 PHP 作为后端来实现实时聊天。然而,一个常见的批评给这个想法蒙上了阴影:
“据报道,PHP 对于 Comet 来说是一个糟糕的选择,因为它需要与每个浏览器客户端保持持久连接。使用 mod_php 需要为每个浏览器客户端专门绑定一个 Apache 子进程。客户端,导致解决方案无法扩展。”
深入研究问题
为了解决这个问题,让我们检查一下潜在的挑战:
Apache 的线程管理
每个 Apache 请求都会使用一个单独的工作线程直至其完成。以持续时间长着称的 Comet 请求可以独占这些线程。
PHP 的并发执行限制
即使 Apache 的线程分配得到解决,PHP 的本质还是需要唯一的线程根据要求。结果,FastCGI 未能解决这种情况。
Continuations:超出 PHP 的范围
Continuations 本身并不支持在事件触发时恢复 Comet 请求。 PHP 支持。
可以解决方案
尽管存在这些障碍,但仍然存在解决方法:
注意事项
这些解决方案附带警告。事件 MPM 可能不会提供显着的改进,并且负载平衡会给架构带来额外的复杂性。
以上是PHP 能否有效处理基于 Comet 的实时消息传递?的详细内容。更多信息请关注PHP中文网其他相关文章!