【发布时间】: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 连接?您是否正在加载 Strophe
flxhr插件?您是否可以通过指向http://chat.dev:9090在浏览器中加载 Openfire 管理界面? -
我可以访问chat.dev:9090,我可以登录介绍管理面板。我不使用 flxhr。