1

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

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

该网站大约有大约 7,000 行 PHP(即,很难直接为整个事情切换语言),所以我的问题是,在尝试集成 python 并设置一个单独的服务器?或者,这是一种非常糟糕的方法吗?还有其他更适合的选择吗?(遗憾的是,我发现的许多 PHP Comet 甚至 AJAX 解决方案都无法扩展。注意,不一定需要 Apache 服务器;但是,使用的任何服务器都必须与 PHP 和 Python 等一起使用,缺少有单独的服务器。)

谢谢您的帮助!

4

1 回答 1

2

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

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

于 2013-02-03T21:00:05.357 回答