gpt4 book ai didi

php - 如何将可扩展的长轮询服务器与 PHP 集成?

转载 作者:行者123 更新时间:2023-12-01 05:49:58 24 4
gpt4 key购买 nike

可以说,我被“招募”来帮助开发一个当前使用 PHP 和 Apache 服务器编写的 Web 项目。我们希望集成实时(或至少非常接近实时)聊天功能。可扩展性是一个明确的问题,而且这种类型的工作绝对不是我的典型。

我读到的有关创建此类聊天功能的所有内容都需要使用“长轮询”,这样服务器就不会迅速过载,甚至崩溃。 PHP 和 Apache 不利于实现这样的功能,因此我探索了一些替代方案,例如 Twisted Python。

该网站大约有 7,000 行 PHP(也就是说,直接切换整个语言是相当困难的),所以我的问题是如何管理这种情况,尝试集成 python 和设置建立一个单独的服务器?或者,这是一个非常糟糕的方法吗?还有其他更适合的选择吗? (遗憾的是,我发现的许多 PHP Comet,甚至 AJAX 解决方案都没有丝毫可扩展性。请注意,Apache 服务器不是必需的;但是,所使用的任何服务器都必须与 PHP 和 Python 等一起工作,缺少有单独的服务器。)

感谢您的帮助!

最佳答案

我会在服务器上使用 Tornado 来编写聊天应用程序。然后,客户端服务器通信可以通过 Websocket 进行。如果您在客户端使用 SockJS,您还可以通过长轮询支持旧版浏览器。有很多使用 Tornado 编写的示例聊天客户端。上手非常简单,并且具有出色的可扩展性。像这样的聊天服务器可以为数千个客户端提供服务,而不会显示任何明显的 CPU 事件。

这是一个示例,可能有点过度设计 https://github.com/diggidanne/websocket-chat/blob/master/server.py

关于php - 如何将可扩展的长轮询服务器与 PHP 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com