【问题标题】:Are netty and comet related somehow?网络和彗星有某种联系吗?
【发布时间】:2012-02-24 16:13:20
【问题描述】:

有点困惑,nettycomet 是如何相关的,或者它们是分开的并且它们以某种方式协同工作?

我读过一些关于使用 nettycomet 构建实时应用程序的文章,对它们如何协同工作感到困惑。

【问题讨论】:

  • 相当肯定彗星是一个想法,一种做“反向ajax”的方式。而netty就是这个“理念”的实现。

标签: java comet netty


【解决方案1】:

据我了解,Netty 是一个框架/库,而 Comet 是一个概念(一种单向 websocket,正如 Chad 所说,一种“反向 ajax”)。

【讨论】:

  • 虽然新形式的功能,最终termed as Comet,是从服务器推送到客户端,但客户端到服务器通信的需求仍然存在。这通常是在 Comet HTTP 传输中使用第二个 HTTP 连接实现的。流式传输/轮询服务器 -> 客户端连接被称为反向通道,客户端 -> 服务器(标准)通信有时被称为命令通道;用于实现诸如订阅之类的事情。
【解决方案2】:

Cometd 是 Bayeux 协议的一种实现 (http://svn.cometd.com/trunk/bayeux/bayeux.html) 该协议有多种实现方式,其中 Cometd 可能是最流行的。

Bayeux 实现的要点在于它允许服务器通过 HTTP 进行异步消息传递,其中包括难以捉摸的“服务器推送”。与客户端每隔 5 秒轮询一次服务器以获取更新不同,服务器可以在有更新时“调用”客户端。

它使用长轮询技术。本质上,HTTP 连接在客户端和服务器之间保持打开状态。当服务器最终有东西要“告诉”客户端时,它会响应打开的连接。立即重新建立连接或“长轮询”。为了防止 HTTP 超时,可以在不同的时间段内自动重新建立连接。

我不确定 Netty 和 Cometd 之间的关系是什么,或者是否存在关系。我怀疑 Netty 在实现 Bayeux 协议时会非常有用(文档似乎暗示了这一点),因为 Bayeux 协议和扩展的弱点之一是必须处理的开放 HTTP 连接的绝对数量。如果他们阻塞,你就会遇到问题,因为线程太多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多