XMPP BOSH与COMET

栏目: Html5 · 发布时间: 5年前

内容简介:我想编写一个实时聊天应用程序,并需要决定使用哪些技术.这些技术之间有什么区别,您更喜欢哪种?为什么?WebSockets不是一个选项,因为它还没有准备好在野外战斗

我想编写一个实时聊天应用程序,并需要决定使用哪些技术.

这些技术之间有什么区别,您更喜欢哪种?为什么?

WebSockets不是一个选项,因为它还没有准备好在野外战斗

谢谢

你应该阅读问题 “Why isn’t BOSH more popular especially as an alternative to WebSockets and Long-Polling” . kanaka

提供了一个很棒的答案,我相信它会解决你对WebSockets的担忧. WebSocket绝对“准备好在野外战斗”.

在我看来,BOSH和Comet是一回事. BOSH代表“同步HTTP上的双向流”,尽管 BOSH specification 声明:

BOSH, the technology defined in this specification, essentially provides a “drop-in” alternative to a long-lived, bidirectional TCP connection. It is a mature, full-featured technology that has been widely implemented and deployed since 2004. To our knowledge it was the first of many similar technologies, which now include the Comet methodology formalized in the Bayeux Protocol as well as The Web Socket Protocol and Reverse HTTP.

我知道彗星服务器至少从2001年开始就存在这个事实,因为我曾经在一家公司( Caplin Systems )工作过,现在有一台Comet服务器.

我之所以说它们在基本层面是相同的,是因为它们最初(见下文)都依赖于两个HTTP连接.第一个是反向通道,它是长期持有的HTTP Streaming连接或用于HTTP Long-Polling.第二个连接是短暂的,用于发送订阅请求等命令.这两个连接允许模拟双向通信.

因此,在基本层面上,BOSH和Comet使用相同的服务器到客户端和客户端到服务器通信的机制(客户端是Web浏览器或其他支持的Web客户端). BOSH的不同之处在于它在协议中提供了更多细节,并在开发时考虑了XMPP.可以开发任何Comet服务器以符合BOSH规范中定义的标准.

所有这些说,Comet和BOSH服务器无疑将提供替代传输机制.这些将包括HTTP Streaming,HTTP长轮询,标准HTTP轮询和WebSockets.

因此,如果您想要BOSH和XMPP提供的详细信息,那么您可能需要考虑使用BOSH和XMPP构建的技术堆栈.如果你想发送简单的消息,没有BOSH和XMPP固有的额外负载,或者如果你想为自己的协议构建自己的“附加值”,那么标记为Comet服务器的东西可能是更好的解决方案.

如果您选择使用现有的技术堆栈,而不是从头开始开发解决方案,那么解决方案很可能会使用WebSockets,因为它们提供了标准化且高效的双向通信机制.

我已经第一次尝试了实时Web技术堆栈图,您可以在下面看到.希望它有点帮助:

你可以找到 list of realtime technologies here .

翻译自:https://stackoverflow.com/questions/7327153/xmpp-bosh-vs-comet


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python极客项目编程

Python极客项目编程

Mahesh Venkitachalam / 王海鹏 / 人民邮电出版社 / 2017-5 / 69

Python 是一种强大的编程语言,容易学习而且充满乐趣。但掌握了基本知识后,接下来做什么? 本书包含了一组富有想象力的编程项目,它们将引导你用Python 来制作图像和音乐、模拟现实世界的现象,并与 Arduino 和树莓派这样的硬件进行交互。你将学习使用常见的Python 工具和库,如numpy、matplotlib 和pygame, 来完成以下工作: ● 利用参数方程......一起来看看 《Python极客项目编程》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具