有开源WebSockets(JavaScript)XMPP库吗?

有开源WebSockets(JavaScript)XMPP库吗?,javascript,xmpp,Javascript,Xmpp,是否有人编写了一个使用WebSocket的开放源码XMPP库,并打算由浏览器运行?不久将有一本书介绍这个主题 但我想你不想等那本书。所以请注意。我今天早上看的。(杰克·莫菲特是上述链接的书的作者。) 所涉及的库(JavaScript和C实现)是 这是一个非常富有成果的探索领域,但非常原始。我们很快就会看到更多。WebSocket附带了HTML5,对吗?我们还没有一个服务器可以实现的XMPP标准,这是在充分解决客户端问题之前需要的 第一步是完成WebSocket标准化。看起来这可能发生在IET

是否有人编写了一个使用WebSocket的开放源码XMPP库,并打算由浏览器运行?

不久将有一本书介绍这个主题

但我想你不想等那本书。所以请注意。我今天早上看的。(杰克·莫菲特是上述链接的书的作者。)

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


这是一个非常富有成果的探索领域,但非常原始。我们很快就会看到更多。WebSocket附带了HTML5,对吗?

我们还没有一个服务器可以实现的XMPP标准,这是在充分解决客户端问题之前需要的

第一步是完成WebSocket标准化。看起来这可能发生在IETF HyBi工作组中,在撰写本文时,该工作组尚未得到IESG的批准。在几周前的广岛IETF会议上,有一个海比羽毛鸟(BoF)会议(见附件),进行得相当顺利

在WebSocket有了一个稳定的引用并且似乎稳定下来之后,将创建一个将XMPP绑定到WebSocket的节,可能每个WebSocket框架都有一个节


编辑:杰克·莫菲特(Jack Moffitt)编写了一个IETF,在一个可以使用的协议上第一次通过警告。这仍有可能发生巨大变化。只有在你愿意以后完全删除它的情况下才能实现它警告

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

1.使用Kaazing。 他们已经支持它了。它是开源的,但是它们有一些类似的功能,所以最好检查您是否可以将其用于您的项目

2.将js.io和APE(Ajax推送引擎)结合起来 APE是一个Comet框架,但他们最近开始支持WebSocket。 在他们的网站(“APE作为代理”部分),他们说它可以运行包含xmpp.js的js.io库,所以将它们结合起来可能会奏效

3.使用Caucho 它是一个基于java的框架,类似于提供一站式Comet解决方案的APE,它们似乎同时支持XMPP和WebSocket

4.请Strophe团队支持WebSocket。 Strophe通过BOSH(同步HTTP上的双向流)实现XMPP,但也有

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

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

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

您考虑将XMPP和WebSocket用于哪种应用程序

以下是备选方案的建议

  • 如果你想拥有与状态、聊天室、聊天室同等的功能,你可以制作Wave Gadget或Robot,然后使用(死链接,保留用于历史目的)暴露于外界。Wave实际上构建在XMPP之上
  • 如果您只是在寻找非常低延迟的消息传递功能,您可以
  • 如果您正在寻找更简单的消息流,您可以
我在写作时得到了上面的大部分信息。
如果您经常查看评论部分,我会在找到其他解决方案后发布更新。

我不确定您为什么要特别要求WebSocket解决方案,因为XMPP服务器必须首先支持这一点

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

  • DojoToolkit有一个

这些示例取自列出了XMPP协议的开源实现的列表。

我不确定浏览器端的JS是否能够单独处理websocket协议,因为它主要依赖于浏览器API。目前很少有浏览器支持websocket:Chrome、Safari5,可能还有Firefox4。有许多基于flash/as3的解决方案(然后您的js使用flash代码进行通信),主要的限制是flash不支持安全连接(太糟糕了)

BWT,您可以查看他们提供的开源Java websocket客户端库,并且似乎处理xmpp内容,如果您浏览存储库,您可能会发现基本的as3 websocket实现。

实现。众所周知,它可以与多个后端实现协同工作:

  • 节点xmpp波什- 支持RFC6455,自0.6.1以来工作正常,并且 如有必要,透明地使用STARTTLS
  • wxg-支持RFC6455和工程 没有问题,但无法连接到需要 STARTTLS(原始wxg有一些 Gordin解决的问题)
  • ejabberd websockets-没有 支持RFC6455,因此它不起作用,对其进行调整以支持 RFC6455对于任何了解Erlang(一些工作)的人来说都应该很容易 正在进行中(可在github上找到)
  • 明火- 非官方插件可用,但缺乏支持 因此,对于RFC6455,它不起作用
  • apachevysper-does 不支持RFC6455,因此不起作用
  • Tigase-在WebSocket上没有已知的工作 支持
  • MongooseIM-ejabberd的一个分支 通过WebSocket支持XMPP

事实上,WebSocket是HTML5的一部分;GoogleChrome已经实现了>您考虑将XMPP和WebSocket用于哪种应用程序?我不一定有任何具体的想法;当然,总的来说,WebSocket上的XMPP将为真正基于事件的web应用程序提供一个框架和协议,大大改善用户体验,例如:*基于web的电子邮件*基于web的协作*实时数据同步*实时更新*浏览器到浏览器的通信这两种技术的结合