1

我正在学习基于 Strophe.js 和 openfire 服务器的 XMPP,因为我在未来的项目中需要它。

我已经配置了我的 openfire 管理员帐户、mysql 数据库、Bosh 协议和用于 http 绑定的 URL。

我创建了我的第一个示例,这是 html(我在 html 标头中包含了我需要的所有 js 文件,例如 strophe.js、flXHR.js 和 strophe.flXHR.js):

<ul>
    <li>JID : <input type="text" name="jid" id="jid" /></li>
    <li>PASS : <input type="password" name="password" id="password"/></li>
    <li><input type="button" value="connect" id="connect" name="Connect" /></li>
</ul>

这是javascript代码:

$(document).ready(function(){

      connection=null;
      $('#connect').click(function (ev) {
            var jid=$('#jid').val();
            var pass=$('#password').val();

       var conn = new Strophe.Connection("http://127.0.0.1:2580/http-bind/");
       conn.connect(jid, pass, function (status) {
                  console.log(status);
           });
       connection = conn;
    });
});

当我测试代码时,我输入我的 openfire 服务器用户名和密码 (admin,123)...点击“连接”并等待。

console.log 显示以下状态值:

1 (connecting)
3 (authenticating)
5 (connected)

到目前为止,一切都很好......但是当我输入与管理员用户名不同的其他值并通过时,它会给我相同的状态结果吗?

这意味着,无论输入用户名是什么,连接都会建立并通过!!!

怎么了?

4

1 回答 1

1

我想我终于解决了部分问题,我去了to server > server settings > registration & login,并禁用了匿名登录。

我之前所做的是server > server manager > system properties,将 xmpp.auth.anonymous 设置为 false。

现在,出现了另一个问题,没有用户可以登录......第一篇文章中的 js 代码现在显示了这些状态消息:

  1 (connecting)
    2 (connection failed)
    7 (disconnecting)
    6 (disconnected)

禁用匿名登录后情况似乎变得更糟。看起来 :

1- 在禁用匿名登录之前:每个用户(即使是不正确的 jid 或 pass)都可以进行身份​​验证并连接到服务器。

2-禁用匿名登录后: Strophe 甚至无法连接到服务器。

任何想法?

编辑

我发现出了什么问题。测试时:我输入的是用户名,而不是用户名@服务器组合(这是默认用户 jid)...我认为 jid 是用户名。问题解决了

于 2013-10-02T09:28:18.083 回答