Dav*_*hta -1 php chat bandwidth
我在userend pullstyle上用JQUERY写了一个PHP chatscript.它每秒重新加载一次pull.php页面,并且自上次检查后仅从我的sql数据库中检索新的聊天记录.
但是我收到了主持人的一封电子邮件,说我使用了太多的带宽.的Bleh.我的聊天工作就像我想要的那样,这发生了.我害怕做一个COMET php聊天,因为我被告知它使用一个单独的进程或线程foreach用户.
我想我只需要一个比我的更好,更高效的策略.
那么你已经有了前提.1秒钟的召回过于频繁 - 任何人都可以在一秒内敲响答案并期望它能够通过吗?我需要至少2秒才能将我的SO消息放在一起/相对错字.
所以第1部分 - 增加召回时间.你把它踢了10秒钟,应用程序仍然会感觉非常快,但你的处理速度降低了10倍 - 这是巨大的.请记住,每条消息都包含额外数据(在HTML中以及支持它的所有网络层中),服务器收到的每条消息都需要处理以决定如何处理它.
第2部分 - 您可能想要引入交互速度的滑动比例.当用户没有打字并且在一段时间内没有收到消息时,重新检查率可以降低到大约30秒.如果用户在"拉"中接收到多个消息或者已经接收到最后3次连续拉动的消息,则速度应该增加(可能甚至更频繁地超过10秒).在谈话期间,这对用户来说会很快,而在没有任何事情发生的情况下,并不会缓慢/滞后.
第3部分 - 听起来你已经在做了,但你的拉力应该是尽可能少的回复.这只是用于呈现新消息的HTML片段,或者甚至可能只是可以由客户端JavaScript呈现的JSON结构.如果您再次收到所有邮件(错误)或整个页面(更糟),您可以通过这种方式严重降低带宽.
第4部分 - 您可能希望查看备用服务器软件.Apache有一些严重的开销......这是有充分理由的,你已经运行了所有的插件,apache配置,.htaccess配置,重写,厨房水槽 - 你可能能够切换到更轻的http服务器 - nginx ,lighttp - 并且实现了一些严重的性能提升(严格来说,它对带宽没有多大帮助 - 但是人们不禁要问这是主机真正抱怨的,还是你的服务消耗了大量的服务器资源).
第5部分 - 你可以看看切换主机或包 - 一个可怕的想法我敢肯定,但可能有更多带宽/处理器的包(后来更多的关键,我怀疑)可用...你甚至可以移动到你的自己的服务器,它允许您在没有服务提供商参与的情况下做您想做的事情.
| 归档时间: |
|
| 查看次数: |
1774 次 |
| 最近记录: |