【发布时间】:2011-03-10 09:23:32
【问题描述】:
经过一整天的搜索,我想谈谈在线聊天的最佳解决方案。
这是我所知道的:
Ajax 轮询是旧的、消耗带宽且不可扩展的方式。它每 X 秒向服务器请求新数据。这意味着每 X 秒执行一次数据库查询 * number_of_connected_users。
反向 Ajax 及其应用程序之一(comet)需要定制的 web 服务器或专用的 comet 服务器,它可以处理 number_of_connected_users 数量的长期 http 连接。
我的实际服务器是:1 Xeon CPU、1 GB RAM 和 1 Gb/s 带宽。服务器是虚拟机(因此具有高度可扩展性)。
我需要一个可以随着服务器和未来不断增长的用户群而扩展的解决方案。
我的疑惑是:
ajax 轮询方法对我的带宽使用有多大影响?
我可以通过哪种方式优化 ajax 轮询以仅在必要时进行 db 查询?
comet 服务器可以在 web-server (Apache) 的同一台机器上运行吗?
使用彗星方式,我仍然需要一个间隔来对数据库进行查询然后发送响应,那么实时在哪里?
用我的实际服务器,彗星方式能行吗?
提前谢谢你。
【问题讨论】: