Bosh 使用 openfire 设置
Posted
技术标签:
【中文标题】Bosh 使用 openfire 设置【英文标题】:Bosh Set up using openfire 【发布时间】:2011-07-01 05:28:06 【问题描述】:我在 windows 中使用 openfire 来设置 bosh 连接管理器...安装成功,但是我给出了 url http://localhost:9090/bosh 它说
HTTP 错误:404
未找到 RequestURI=/http-bind/
由 Jetty 提供支持://
试过http://localhost:9090/http-bind/ 给出同样的错误
任何人都可以给我打电话吗? 我该如何排除故障 谢谢
【问题讨论】:
【参考方案1】:尝试将端口设置为7070
我相信这是 Openfire 的默认 BOSH 端口。转到管理控制台并检查 http 绑定(bosh 所做的是将 xmpp 协议绑定到 http 请求响应模型......基本上)
http://127.0.0.1:9090/http-bind.jsp
编辑:实际上你所说的“给出网址”是什么意思?你把它放到浏览器中了吗?
管理控制台网址是http://127.0.0.1:9090/index.jsp
【讨论】:
【参考方案2】:尝试使用POST
,而不是包含<body/>
元素的GET
,如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 (code.stanziq.com/strophe) 这样的库来发送该协议。 是的,我正在使用 strophe.js,但即便如此我也遇到了这个错误 我无法通过 https 访问 openfire:--127.0.0.1:9091/http-bind.jsp【参考方案3】:BOSH 请求需要一个 BODY。
如果您的HTTP Bind Settings
不允许Script Syntax
,那么您将收到404
GET 请求错误。如果您启用脚本语法,即允许访问受限的 BOSH 客户端连接到服务器,那么您将收到一个 GET 请求的400
错误,因此您至少会知道 Jetty 正在侦听该端口。
要发送有效请求,您应该使用正文发出 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/
【讨论】:
【参考方案4】:尝试在 http://127.0.0.1:9090/http-bind.jsp
处将Script Syntax
设置为 Enable
【讨论】:
以上是关于Bosh 使用 openfire 设置的主要内容,如果未能解决你的问题,请参考以下文章
通过 Bosh 进行的 Openfire 带内注册无法与 Strophe/Strophe.register.js 一起使用
strophe 无法通过 websocket 连接 openfire