【问题标题】:Comet vs Ajax for chattingComet vs Ajax 聊天
【发布时间】:2011-01-12 00:41:13
【问题描述】:

我的网站需要一个聊天室,我还希望实现一个 facebook 式的人与人之间的聊天系统。

对我来说什么是最具成本效益/性能的(纯粹就 bw 和服务器而言)。常规的 1 秒轮询 ajax 聊天,或彗星解决方案。

谢谢。

【问题讨论】:

    标签: ajax performance comet chat polling


    【解决方案1】:

    Comet 通常会导致较低的带宽使用(假设平均每个聊天每秒少于 1 条聊天消息),因为它只会在每条发送的消息中查询服务器一次。不过,这通常会导致与您的服务器的更多并发活动连接。

    这个blog article 可以帮助你更好地想象它。

    【讨论】:

    • 感谢您的链接,但这是一篇相当有偏见的文章。我知道彗星会降低体重,但是服务器资源呢?谢谢。
    • 是的。但请记住,对于每个 HTTP 连接,您都必须进行整个 TCP/IP 握手,这是一组相对昂贵的操作。因此,通过每秒轮询一次,您可以通过提高用户数量来快速破坏您的服务器。一切都取决于您希望一次在服务器上拥有多少客户端,因为这一切都归结为规模。我认为,如果您真的需要关心彗星使用的服务器资源,那么您可能已经到了需要多个服务器和负载平衡器的地步......
    • @Dan HTTP 1.1 的默认连接模式不是“保持活动”吗?所以即使有大量 HTTP 请求,也不会发生很多 TCP/IP 握手,对吧?
    • 1) 是,2) 部分。例如,Apache 2.2 默认只保持这些连接打开 5 秒。因此,在聊天室的情况下,当没有人说话时,1 万在线用户每分钟会产生 12 万次握手。您可以进行很多优化,例如延迟聊天消息进行聚合,但总的来说,我相信我的回答仍然成立。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2012-11-16
    • 2010-11-08
    • 2011-07-12
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多