2013-03-21 84 views
0

我对彗星实现有个疑问。我知道它用于处理类似于现在可以通过Servlet 3.0异步功能实现的异步请求。然而,我不明白的是如何推送到呼叫客户端。彗星如何与客户端一起工作

在Web套接字中,我们通过提供IP和端口来打开连接。有了彗星,当服务器推送数据时,如何连接服务器以接收回调?

回答

1

维基百科页面上Comet (programming)是一个很好的资源,对于这个问题(对不起,这是如此明显)。

Comet是一个使用HTTP来模拟客户端和服务器之间的双向连接的总称。最终,您向服务器发出HTTP请求并尝试保持其打开(长轮询和流式传输)。通过长轮询,连接在给定的时间间隔后或数据返回时关闭。通过流式传输,连接尽可能长时间处于打开状态,新数据通过现有连接发送。

这些如何实现不同网页浏览器 - 为什么彗星被归类为黑客。再次,维基百科页面应该提供几乎所有你需要的信息。

我写了一篇文章,介绍实时网络通信的历史(重点介绍客户端)以及为什么WebSockets are a game-changer

+0

Thx很多。我的问题是,长轮询只是递归ajax调用,因此不同于websockets的权利?无论如何,这个wiki确实掩盖了它,并感谢你的文章。也会经历这一点。 – dinukadev 2013-03-23 06:21:32

+0

@dinukadev重要的是要记住,彗星不只是长时间投票 - 它们不是同义词,因为长时间投票只是彗星实现的方式之一。流式传输实际上是一种更好的解决方案,因为连接保持开放,信息可以即时发送。通过长时间轮询,有时候没有建立连接,数据可能会过时(陈旧)。高兴我可以帮忙。 – leggetter 2013-03-23 10:27:01