我正在尝试学习 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 的书,但这本书没有涵盖这方面,而且我找到的文档也对我没有帮助。
谢谢。