gpt4 book ai didi

XMPP BOSH 与 COMET

转载 作者:行者123 更新时间:2023-12-04 09:04:25 26 4
gpt4 key购买 nike

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

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

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.



我知道 Comet 服务器至少从 2001 年就已经存在了,因为我曾在一家拥有并且仍然拥有 Comet 服务器的公司 ( Caplin Systems) 工作。

从根本上说,我说它们是同一件事的原因是它们最初(见下文)都依赖于两个 HTTP 连接。第一个是反向 channel ,它要么是长期持有的 HTTP 流连接,要么用于 HTTP 长轮询。第二个连接是短暂的,用于发送订阅请求等命令。这两个连接允许模拟双向通信。

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

综上所述,Comet 和 BOSH 服务器无疑将提供替代传输机制。这些将包括 HTTP 流、HTTP 长轮询、标准 HTTP 轮询 网络套接字。

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

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

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

Realtime Web Technology Stack

您可以找到 list of realtime technologies here .

关于XMPP BOSH 与 COMET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com