Bosh使用openfire的设置

7
我正在Windows上使用openfire设置BOSH连接管理器...安装成功,但当我提供URLhttp://localhost:9090/bosh时,它显示:
HTTP ERROR: 404
NOT_FOUND RequestURI=/http-bind/
Powered by Jetty://
尝试http://localhost:9090/http-bind/也出现相同的错误。
请问有人能告诉我发生了什么事情吗? 我该如何排除故障 谢谢
4个回答

4

尝试将端口设置为7070,我相信这是Openfire的默认BOSH端口。进入管理控制台并查看http绑定(bosh所做的就是将xmpp协议绑定到http请求响应模型中...基本上)

http://127.0.0.1:9090/http-bind.jsp

编辑:实际上,你所说的“给出url”是什么意思?你是将其输入到浏览器中吗? 管理员控制台的url是http://127.0.0.1:9090/index.jsp


2

尝试使用POST而不是GET,其中包含一个<body/>元素,如XEP-0206中所指定的:

POST /bosh HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: 275

<body content='text/xml; charset=utf-8'
      from='user@localhost'
      hold='1'
      rid='1573741820'
      to='localhost'
      wait='60'
      xml:lang='en'
      xmpp:version='1.0'
      xmlns='http://jabber.org/protocol/httpbind'
      xmlns:xmpp='urn:xmpp:xbosh'/>

这不是一个文件,而是通过HTTP发送的协议。您需要使用像Strophe.js (http://code.stanziq.com/strophe/)这样的库来发送该协议。 - Joe Hildebrand
是的,我正在使用strophe.js,但即使如此,我仍然遇到了这个错误。 - enthusiastic
我无法通过https访问openfire:--https://127.0.0.1:9091/http-bind.jsp - Butani Vijay

1
BOSH请求需要BODY。
如果您的“HTTP绑定设置”不允许“脚本语法”,那么您将在GET请求时收到404错误。如果启用脚本语法,即允许受限制的BOSH客户端连接到服务器,则您将在GET请求时收到400错误,因此您至少知道Jetty正在监听该端口。

enter image description here

要发送有效请求,您应该使用主体进行POST请求,例如,使用cURL可以运行以下命令(为了清晰起见添加了换行符):
curl -X POST -d "<body content='text/xml; charset=utf-8' 
    from='user@localhost' 
    hold='1' 
    rid='1573741820' 
    to='localhost' 
    wait='60' 
    xml:lang='en' 
    xmpp:version='1.0' 
    xmlns='http://jabber.org/protocol/httpbind' xmlns:xmpp='urn:xmpp:xbosh'/>" 
        http://desktop-nquceg9:7070/http-bind/

0
尝试将脚本语法设置为启用,位于http://127.0.0.1:9090/http-bind.jsp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接