无法使用 HTTP 绑定连接到 XMPP 服务器(openfire)
Posted
技术标签:
【中文标题】无法使用 HTTP 绑定连接到 XMPP 服务器(openfire)【英文标题】:Can't connect to XMPP server (openfire) with HTTP binding 【发布时间】:2013-04-18 13:30:31 【问题描述】:我正在尝试学习 XMPP 协议以使用它制作 Web 应用程序。
所以,我安装了一个名为 openfire 的 XMPP 守护程序,我将其配置为支持 HTTP-Bind,我可以使用 Pidgin 和默认的 XMPP 协议连接到它。
问题是我无法使用 HTTP 绑定连接到它。在 pidgin 中,当我连接到指定我想用来连接到服务器的方法时,我有一些选项。如果我将其设置为使用 HTTP-Bind 进行连接,则会失败并显示以下消息:No session id given。
在客户端,我会使用 Strophejs 尝试建立这种连接,但它也不起作用。我有这样的事情:
var conn = new Strophe.Connection("http://chat.dev/http-bind");
http://chat.dev/http-bind 是 XMPP 守护程序的位置。我已将此位置转发到 apache 虚拟主机中的正确端口上,因此 http://chat.dev/http-bind 将指向与 http://127.0.0.1:7070 相同的东西。
conn.connect("test5", "test5", some_callback);
function some_callback(status)
if (status == Strophe.Status.CONNECTING)
console.log('Strophe is connecting.');
else if (status == Strophe.Status.CONNFAIL)
console.log('Strophe failed to connect.');
else if (status == Strophe.Status.DISCONNECTING)
console.log('Strophe is disconnecting.');
else if (status == Strophe.Status.DISCONNECTED)
console.log('Strophe is disconnected.');
else if (status == Strophe.Status.CONNECTED)
console.log('Strophe is connected.');
// connection.disconnect();
这将返回:“Strophe 正在连接。”
嗯,我不知道答案,我一直在读一本关于 XMPP 和 Strophe 的书,但这本书没有涵盖这方面,而且我找到的文档也对我没有帮助。
谢谢。
【问题讨论】:
在我看来,OpenFire 没有正确配置为使用 BOSH 和 HTTP 绑定。 如何检查是否属实? 请告诉我们更多关于您的设置的信息。您的 Openfire 守护程序是否与您的 Web 服务器在同一主机/IP 上运行?您将 Openfire 配置为在哪个端口上侦听传入的 BOSH 连接?您是否正在加载 Stropheflxhr
插件?您是否可以通过指向http://chat.dev:9090
在浏览器中加载 Openfire 管理界面?
我可以访问chat.dev:9090,我可以登录介绍管理面板。我不使用 flxhr。
【参考方案1】:
试试这个- var conn = new Strophe.Connection("http://chat.dev/http-bind/");
需要把'/'放在最后。为我工作。
【讨论】:
以上是关于无法使用 HTTP 绑定连接到 XMPP 服务器(openfire)的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 react-native-xmpp 连接到 Ejabberd 服务器