有没有人编写过使用 WebSockets 并由浏览器运行的开源 XMPP 库?

有帮助吗?

解决方案

我们还没有 XMPP 的标准 WebSockets 服务器可以实现,这在客户端得到充分处理之前是必需的。

第一步是完成WebSocket标准化。看起来这可能会在 IETF HyBi 工作组中发生,但在撰写本文时尚未得到 IESG 的批准。几周前,在广岛 IETF 会议上举行了 HyBi Birds-of-a-Feather (BoF) 会议(请参阅 会议材料),进展顺利。

在 WebSockets 有了稳定的参考并且似乎稳定下来之后, XSF 将创建一个 XEP 将 XMPP 绑定到 WebSocket,大概每个 WebSocket 帧都有一个节。

编辑:Jack Moffitt 编写了一份 IETF 互联网草案 第一次通过可以使用的协议。 警告. 。这种情况仍有可能发生巨大改变。仅当您愿意稍后将其完全删除时才实施它。 警告.

其他提示

有多种解决方案(没有一个是完美的)

1.使用卡津。

他们已经支持了。它是开源的,但他们有某种 双重许可, ,所以最好检查一下是否可以用于您的项目。

2.结合js.io和APE(Ajax推送引擎)

APE 是一个 Comet 框架,但他们最近开始支持 Websockets。在他们的网站(“APE 作为代理”部分),他们说它可以运行包含 xmpp.js 的 js.io 库,因此将它们组合起来可能会起作用。

3.使用考乔

它是一个类似于 APE 的基于 java 的框架,提供一站式 Comet 解决方案,并且它们似乎都支持 XMPP 和 WebSockets

4.请求 Strope 团队支持 WebSocket。

Strope 通过 BOSH(通过同步 HTTP 的双向流)执行 XMPP,但是有 关于支持 WebSockets 的讨论, , 也。

Jack Moffitt(核心开发人员和上述书籍的作者)似乎对 WebSocket 感兴趣,但我们需要提供更强有力的推理来说明为什么他们需要支持 WebSocket 而不是 BOSH。如果您有好的答案,欢迎加入。

我刚刚尝试过他们的 xmpp、bosh、strope echobot 示例, ,效果很好。您可能还想尝试一下,看看它是否符合您的要求。

对于#2 和#3,他们说它们都支持 xmpp 和 websockets,但不确定它们是否可以一起工作。

您正在考虑将 XMPP 和 WebSockets 用于哪种类型的应用程序?

以下是替代方案的建议。

我在写这篇文章时得到了上面的大部分信息 这篇博文. 。如果您不时查看评论部分,一旦找到其他解决方案,我将发布更新。

有一本书即将覆盖这个话题......

专业XMPP用JavaScript和jQuery 替代文本http://ecx.images-amazon.com/images/ I / 51B7VAHw8OL._SL500_AA240_.jpg

但我假设你不想等待的书。所以,看从JSConf 中的杰克·莫菲特的介绍。我今天早上看了。 (杰克·莫菲特是连接于上述书的作者。)

所涉及的库(JavaScript和C实现)是的strophe

这是勘探了卓有成效的面积,但很生。我们很快便会看到。的WebSockets配备HTML5,是吗?

JSJaC 实施 基于 Websocket 的 XMPP. 。众所周知,它可以与多种后端实现一起使用:

  • Node-XMPP-Bosh-支持RFC6455,并且由于0.6.1而没有问题,因此,它在必要时也可以透明地使用starttls
  • WXG-支持RFC6455,毫无问题,但无法连接到需要StartTLS的服务器(原始WXG有一些问题,这些问题是由Gordin解决的)。
  • ejabberd -websockets-不支持RFC6455,因此它不起作用,对于任何知道Erlang的人来说,调整它以支持RFC6455(可以在GitHub上找到某些正在进行的工作),应该很容易
  • OpenFire-可以使用非官方插件,但缺乏对RFC6455的支持
  • Apache Vysper-不支持RFC6455因此不起作用
  • Tigase-网络支持上没有已知的工作
  • Mongooseim- ejabberd的叉子,支持XMPP在Websockets上。

我不是在浏览器端肯定JS可以处理WebSocket协议孤单,因为它主要依赖于浏览器的API。很少有浏览器支持WebSocket的尚未:铬,Safari5,也许Firefox4。有基于Flash / AS3许多变通方法(那么你的js闪码通信)的主要限制是,Flash不支持安全连接(坏)。

BWT,您可以检查这个WebSocket的implem 他们提供开源的Java的WebSocket客户端lib和似乎处理XMPP的东西,如果你浏览版本库,你可能会发现基本AS3的WebSocket实现。

我不确定您为什么专门要求 WebSocket 解决方案,因为 XMPP 服务器必须首先支持此解决方案。

然而,有几个可用的 XMPP JavaScript 库(据我所知它们都使用 BOSH 方法):

这些例子取自 XMPP网站 其中列出了 XMPP 协议的开源实现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top