2009-05-21 70 views
6

我一直在想,如果使用COMET/push-technology技术比使用长请求更简单的轮询有一个真正的优势,那就是在告诉客户端没有任何事情发生之前,服务器将等待新事件发生的某个最大时间。COMET对长请求轮询的好处?

这两种技术都有类似的客户端延迟,而普遍的看法是长时间的请求更糟糕,因为他们需要建立一个新的连接,还有一个事实就是存在HTTP保持活动 - 所以最终,两者似乎都产生非常相似的流量/负载量。

那么使用COMET有没有一些明显的优势?

+0

不是我所能看到的......(/我想知道是否有这样一个彗星变形金刚迷) – annakata 2009-05-21 11:19:45

+0

@annakata这些日子里还有人/我吗? – Pacerier 2012-07-03 09:17:18

回答

12

AFAIK轮询与长时间的请求几乎是彗星。轮询与短的请求不是。

0

我能想到的一些优点:

  • 使客户端编程更加容易。
  • 真实事件和到达客户端的通知之间的最小延迟。通过轮询,平均时间为[POLL TIME]/2,最差情况为[POLL TIME]。
  • 可以最小化服务器所需的资源。例如,请参阅此article。需要使用新的服务器技术来实现这一点。
+1

您描述的等待时间是您对长请求的“短请求”所具有的延迟,服务器将延迟答案,直到发生事件或达到最大超时(以防止连接超时)。这意味着您必须每分钟制作一个请求,但仍然几乎没有延迟,因为服务器上的事件会触发下一个响应。 客户端不那么复杂..客户端请求单个事件URI并在获得答案后立即重新请求它。 – fforw 2009-05-21 11:54:57