COMET相对于长轮询的优势是什么?

6

我一直在思考使用COMET / 推送技术是否真的比使用长轮询更有优势,其中服务器会在告诉客户端没有新事件发生之前等待特定的最大时间。

这两种技术都具有类似的客户端延迟,尽管普遍认为长轮询更糟糕,因为它们需要建立一个新的连接,但也有HTTP保持连接的事实存在,所以最终两者似乎产生了非常相似的流量/负载。

那么,使用COMET是否有明显的优势呢?


据我所知,好像没有这样的事情...(/我在想是否有彗星迷这样的人) - annakata
@annakata 这些天人们还会使用 /me 吗? - Pacerier
2个回答

12
据我所知,使用长轮询的请求基本上就是comet。而使用短轮询的请求则不是。

4
Bingo。不同之处在于长时间保持请求的开放,这在服务器上高效地实现起来很棘手。如果您拥有这个功能,基本上就拥有了彗星。 - Jerod Venema

0

我能想到的一些优点:

  • 使客户端编程更容易。
  • 真实事件和通知到达客户端之间的最小延迟。使用轮询,平均时间为[POLL TIME]/2,最坏情况为[POLL TIME]。
  • 可以最大限度地减少服务器所需的资源。例如,参见这篇文章。需要使用新的服务器技术。

1
您所描述的延迟是在“短请求”中出现的,而对于长请求,服务器会延迟回答直到事件出现或达到最大超时时间(以防止连接超时)。这意味着您需要每分钟进行一次请求左右,但仍然几乎没有延迟,因为服务器上的事件会触发下一个响应。客户端并不复杂... 客户端请求单个事件URI,并在收到答案后立即重新请求它。 - fforw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接