5

我们正在创建一个网站,我们正在尝试开发一个聊天应用程序,我们已经使用 Comet 构建了一个,但是由于速度因素,我们决定在 XMPP 中制作一个。

然而,随着 HTML5 的生机勃勃以及新的 websockets 技术的存在,我们是否应该离开 XMPP 并尝试使用 Websockets 来制作?

所以我的问题是:

  1. 我可以制作一个移动应用程序并将其连接到我的服务器上的 XMPP,有没有办法通过电话连接到基于 websockets 的聊天应用程序?(例如 android 的 Smack 库,基于 websockets 的应用程序有类似的东西吗?

  2. 是否有后备选项说明该人是否使用旧浏览器用于基于 websockets 的聊天应用程序?

  3. 哪个开销更大,哪个技术更快或更好?

另外,可以说 XMPP 是一种久经考验的技术,它仍然需要很多库对吗?比如 Strophe.js flXHR 等对吧?但是 HTML5 不是为这种类型的东西而构建的,没有任何永恒的库等吗?

问候,

4

1 回答 1

13

XMPP 维基百科页面有一个关于XMPP via HTTP 和 WebSocket 传输的部分。最后一段说:

一种可能更有效的实时消息传输方式是 WebSocket,它是一种通过单个 TCP 连接提供双向、全双工通信通道的 Web 技术。存在基于 WebSocket 的 XMPP 的实验性实现,并且记录该方法的(现已过期)互联网草案已在 IETF 上发布,但尚未标准化。

WebSocket 是一种消息传递协议,因此 XMPP 可以通过 WebSocket 实现。如果进一步采用 WebSocket 子协议,我们甚至可能会看到对此的原生支持。但在此之前,WebSocket 连接将仅充当 XMPP 协议消息的低级传输。

所以,这不是“XMPP 还是 WebSocket”的问题。如果 XMPP 符合您的要求,那么我会寻找使用 WebSockets(并具有适当的 HTTP 回退)并提供 XMPP 支持的解决方案。

于 2013-05-20T16:56:46.593 回答