4

我正在尝试通过 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://

这是我的服务器设置,我看到的线程很少,但它们没有帮助

在此处输入图像描述

更新

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

在此处输入图像描述

4

6 回答 6

10

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

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

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

在浏览器中尝试以下 URL:

 http://www.servername:7070/http-bind/?<body rid="1"/>
于 2013-08-12T09:23:29.133 回答
2

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

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

于 2012-12-04T10:34:26.803 回答
0

你的设置是正确的。浏览器显示给你的页面也是正常的。Openfires BOSH 组件并非设计用于带有 HTTP GET 的浏览器,仅适用于 strophe 之类的 BOSH 客户端。尝试连接 strophe。

于 2012-12-03T09:22:27.490 回答
0

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

备注:
1.我用的是jsjac,但我觉得不重要。
2.如果你确定你的配置是正确的,请重启你的openfire服务器。这是我的经验。

于 2013-05-23T07:24:41.420 回答
0

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

HTTP ERROR: 404

Problem accessing /http-bind/. Reason:

  Not Found
Powered by Jetty://

当我在 此处卸载并重新安装 Openfire 时,错误请求消失了。

于 2016-12-03T04:56:17.830 回答
0

下面对我有用,我在一段时间后ping openfire服务器,所以客户端仍然活着......我只是在服务器名称后面附加“/?<body rid ='1'”并且我没有400错误请求错误.

 XMPPconnection.sendIQ($iq({ to: XMPPserver+"/?<body rid='1'/>", from: CurrentUserJID, type: "get" }).c('ping', { xmlns: "urn:xmpp:ping" }));
于 2021-09-09T13:42:06.157 回答