1

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

谢谢。

4

1 回答 1

0

试试这个 - var conn = new Strophe.Connection(" http://chat.dev/http-bind/ ");

需要把'/'放在最后。为我工作。

于 2015-04-06T06:03:46.720 回答