在openfire上启用http-bind

时间:2012-12-03 08:33:37

标签: xmpp openfire strophe bosh

我正在尝试通过Openfire启用BOSH连接,以便我可以通过Web创建XMPP客户端。目前我用strophe.js测试它。

问题是当我尝试在浏览器中触发以下网址时

http://www.mydomain.com:7070/http-bind

以下错误

HTTP ERROR 400


    Problem accessing /http-bind/. Reason:

        Bad Request
    Powered by Jetty://

这是我的服务器设置,我看到几个线程,但他们没有帮助

enter image description here

更新

我使用strophe建立了连接,但我在浏览器恍惚状态下出现以下错误

enter image description here

5 个答案:

答案 0 :(得分:9)

它现在在我的系统中工作。

我认为您遇到的错误实际上可能是openfire的配置问题。

如果请求中没有元素,它的目的是回复HTTP 400 Bad Request。您可以通过在查询中提供元素来自行测试。

在浏览器中尝试以下网址:

 http://www.servername:7070/http-bind/?<body rid="1"/>

答案 1 :(得分:2)

在您的更新中,Strophe正在发送OPTIONS HTTP请求,这意味着它正在协商跨域通信。请求被涂成红色,这意味着由于某种原因这是失败的。可能是配置错误。 这里有一篇很好的文章:http://metajack.im/2010/01/19/crossdomain-ajax-for-xmpp-http-binding-made-easy/

否则,当Strophe进行常规BOSH通信时,它使用POST方法。

答案 2 :(得分:0)

您的设置正确无误。浏览器向您显示的页面也很正常。 Openfires BOSH组件不适用于使用HTTP GET的浏览器,只适用于像strophe这样的BOSH客户端。尝试连接strophe。

答案 3 :(得分:0)

您应该使用代理将请求重新发布到openfire服务器。因为,js帖子不能支持跨域。

注意:
我使用jsjac,但我认为这并不重要 2.如果您确定配置正确,请重启您的openfire服务器。这是我的经历。

答案 4 :(得分:0)

如果服务器配置正确,则应显示

HTTP ERROR: 404

Problem accessing /http-bind/. Reason:

  Not Found
Powered by Jetty://

当我卸载并重新安装Openfire时,错误的请求消失了 here