2011-08-18 24 views
6

我是初学实时应用程序(例如:聊天,MMORPG),但我很擅长php和ajax。 我已经使用php和ajax(间隔1000ms)编程聊天..之后,我的网站变得非常沉重,原因是服务器上的压力很大!实时和php?

我想了解有关降低服务器压力的信息。

在此先感谢

+3

考虑更合适的语言。 – 2011-08-18 23:44:21

+0

我同意Dagon - 一个实时应用程序将真正惩罚一台运行PHP的服务器。我重写了一个实时PHP应用程序以使用节点。js代替,而且它每分钟都能获得1000分钟的点击率,而不会有任何戏剧性。 –

+0

如果您对现有基础架构感到满意,您可能需要考虑将实时基础架构部分外包给[托管的实时服务](http://www.leggetter.co.uk/real-time-technologies-guide #托管服务)。 – leggetter

回答

1

查找long-polling ajax

它要求只有一分钟一次(请求不是60 /分钟,但1 /分钟)

+0

这也会对服务器造成压力。 faceboock聊天速度很快?我不知道如何做到这一点! – Lokers

+3

@Lokers:Facebook有60 000个服务器...是的facebook聊天非常快 – genesis

+0

有网站只使用一个主机,它的速度很快 – Lokers

0

您还可以看看阿贾克斯推动引擎做实时数据流(他们声称它的尺度非常好)。 http://www.ape-project.org/

+0

谢谢,我会测试一下。 – Lokers

1

您可以尝试将聊天转换为基于套接字的Web应用程序。我不知道使用AJAX或使用套接字的性能差异,但我使用套接字听起来更像是逻辑。 :)

+0

谢谢 你知道一个网站或文章给我关于插座的信息? – Lokers

+0

http://devzone.zend.com/article/1086或http://www.devshed.com/c/a/PHP/Socket-Programming-With-PHP/ 你也可以谷歌的东西像'插座聊天php'.. :) – Abbas

1

您可能想缓存结果。设置memcached(key => value)缓存可以减少数据库负载。

当有新的请求进入时,如果您的应用程序查找的值位于缓存中,您的应用程序会询问memcache。否则,请向数据库引擎询问该值,将该值返回给用户并在下次缓存该值。

1

有趣的PHP库提供的工具开发者创建实时的客户端和服务器之间的双向应用过的WebSockets:比PubNub没有进一步http://socketo.me/