我正在学习基于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)
到目前为止,一切都很好......但是当我输入与我的管理员用户名不同的其他值并通过时,它会给我相同的状态结果吗?
这意味着,无论输入用户名是什么,都建立连接并传递!!!
怎么了?
答案 0 :(得分: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甚至无法连接到服务器。
有什么想法吗?