有没有人写过一个使用WebSockets的开源XMPP库,是否应该由浏览器运行?
有多种解决方案(没有一种是完美的)
1.使用Kaazing.他们已经支持了它.它是开源的,但它们有某种双重许可证,所以最好检查一下你是否可以用于你的项目.
XMPP JavaScript方法
2.结合js.io和APE(Ajax Push Engine)
APE是一个Comet框架,但他们最近开始支持Websockets.在他们的网站("APE as proxy"部分),他们说它可以运行包含xmpp.js的js.io库,因此将它们组合起来可能会有效.
如何使用APE编写应用程序
3.使用Caucho
它是一个类似于APE的基于java的框架,提供一站式Comet解决方案,它们似乎同时支持XMPP和WebSockets
Caucho树脂
使用Resin的Caucho Websocket示例
4.要求Strophe团队支持WebSocket.
Strophe通过BOSH执行XMPP(双向流超过同步HTTP),但也有关于支持WebSockets的讨论.
Jack Moffitt(核心开发人员和上面提到的书的作者)似乎对WebSockets感兴趣,但我们需要提供更强有力的推理,说明为什么他们需要支持WebSocket而不是BOSH.如果你有很好的答案,请加入我们的行列.
我刚尝试了他们的xmpp,bosh,strophe echobot示例,这很好用.您可能还想尝试一下它是否符合您的要求.
对于#2和#3,他们说他们都支持xmpp和websockets,但不确定它们是否一起工作.
您正在考虑使用XMPP和WebSockets的应用程序是什么类型的?
以下是替代方案的建议.
如果你想要存在,聊天,聊天室等效功能,你可以制作Wave Gadget或Robot,然后使用Wave Embed API暴露到外面(死链接,保留用于历史目的).Wave实际上是建立在XMPP之上的.
如果您只是寻找非常低延迟的消息传递功能,您可以尝试AMQP.
如果您正在寻找更简单的消息流,您可以直接输入/输出unix文件,如我在此处演示的那样.
当我写这篇博文时,我得到了上面的大部分信息.如果您不时查看评论部分,我会在找到其他解决方案后发布更新.
我们还没有服务器可以实现的WebSockets上的XMPP标准,这在客户端可以得到充分解决之前是必需的.
第一步是完成WebSocket标准化.看起来这可能发生在IETF HyBi工作组中,在撰写本文时尚未得到IESG的批准.几周前在广岛IETF会议上有一个HyBi Bird-of-a-Feather(BoF)(见会议资料),相当不错.
在WebSockets具有稳定的引用并且似乎已经解决之后,XSF将创建一个将XMPP绑定到WebSockets 的XEP,可能每个WebSocket框架都有一个节.
编辑:杰克莫菲特写了一个IETF 互联网草案,第一次通过一个可以使用的协议. 警告.这仍然可能会发生巨大变化.如果您愿意稍后将其全部删除,请仅实施它. 警告.