【问题标题】:How does comet work with the client sideComet 如何与客户端协同工作
【发布时间】:2013-03-21 09:07:40
【问题描述】:

我有一个关于彗星实施的问题。我知道它用于处理类似于现在可以通过 Servlet 3.0 异步功能实现的异步请求。然而我不明白的是如何推送到调用客户端。

在网络套接字中,我们通过提供 ip 和端口来打开连接。使用 Comet,如何与服务器连接,以便在服务器推送数据时接收回调?

【问题讨论】:

    标签: apache tomcat comet


    【解决方案1】:

    Comet (programming) 上的 Wikipedia 页面是解决这个问题的一个很好的资源(抱歉,它太明显了)。

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

    实现这些的方式因网络浏览器而异 - 这就是 Comet 被归类为 hack 的原因。同样,维基百科页面应该提供您需要的几乎所有信息。

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

    【讨论】:

    • 非常感谢。我的问题是长轮询只是递归 ajax 调用,因此与 websockets 不同,对吗?无论如何,维基确实涵盖了它,并感谢您的文章。也会经历的。
    • @dinukadev 重要的是要记住 Comet 不仅仅是长轮询 - 它们不是同义词,因为长轮询只是实现 Comet 的方式之一。流媒体实际上是一个更好的解决方案,因为连接保持打开状态并且可以立即发送信息。对于长轮询,有时无法建立连接并且数据可能已过期(过时)。很高兴我能提供帮助。
    猜你喜欢
    • 2015-11-11
    • 2010-11-08
    • 2012-03-27
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多