有点困惑, netty 和彗星如何相关或者它们是否分开并且它们以某种方式协同工作?
我已经阅读了一些关于使用 netty 和 comet 来构建实时应用程序的一些内容,并且混淆了它们如何协同工作。
答案 0 :(得分:2)
据我所知,Netty是一个框架/库,而Comet是一个概念(一种单向的websockets,正如Chad所说,是一种“反向ajax”)。
答案 1 :(得分:1)
Cometd是Bayeux协议的实现(http://svn.cometd.com/trunk/bayeux/bayeux.html)。该协议有多个实现,其中cometd可能是最受欢迎的。
Bayeux实现的重点在于它允许服务器通过HTTP进行异步消息传递,其中包括难以捉摸的“服务器推送”。而不是客户端每次(例如5秒)轮询服务器进行更新,服务器可以在客户端进行更新时“调用”客户端。
它使用Long Polling技术。实质上,HTTP连接在客户端和服务器之间保持打开状态。当服务器最终有“告诉”客户端时,它会响应打开的连接。连接或“长轮询”立即重新建立。为了防止HTTP超时,可以在不同的时间段内自动重新建立连接。
我不确定Netty和Cometd之间的关系是什么,或者是否存在。我怀疑Netty在实现Bayeux协议时非常有用(文档似乎暗示了这一点),因为Bayeux协议和扩展的一个弱点是必须处理的开放HTTP连接的绝对数量。如果它们阻塞,则会出现问题,因为线程太多。