我正在使用openfire作为xmpp服务器和strophe.js作为客户端库开发聊天应用程序,并在ubuntu上使用ruby on rails。
问题是strophe.js连接到openfire但是给出了AUTHFAIL状态并且没有创建任何用户。它总是返回状态4(AUTHFAIL)。
openfire正在>>上运行本地主机:9090
在>>上运行的rails应用程序本地主机:3000
运行在>>上的BOSH服务本地主机:7070 / HTTP绑定/
代码: -
<script>
var BOSH_SERVICE = 'http://localhost:7070/http-bind/';
var connection = null;
jQuery('#connect').click(function(){
connection = new Strophe.Connection(BOSH_SERVICE);
connection.connect($('#enter_id').get(0).value + "@localhost", null, onConnect);
});
function onConnect(status)
{
console.log("status is >> " + status);
if(status == 5){
console.log("inside if status is >> " + Strophe.Status.CONNECTED);
console.log("onConnect >> " + status);
connection.send($pres().tree());
connection.addHandler(notifyUser, null, 'message', "chat");
console.log("onConnect >> handler added");
}
}
function notifyUser(msg)
{
console.log("notifyUser >> " + msg);
// if (msg.getAttribute('from') == "testuser@127.0.0.1/pingstream") {
var elems = msg.getElementsByTagName('body');
var body = elems[0];
jQuery('#chat_msg').append(Strophe.getText(body));
// }
return true;
}
jQuery('#send_msg').click(function(){
var msg_to_send = $msg({
to: jQuery('#send_to').val() + "@localhost",
from: connection.jid,
type: "chat"
}).c("body").t("hi!");
connection.send(msg_to_send.tree());
});
</script>
Plz帮助。
答案 0 :(得分:0)
@ amirinder007您在代码中提供了错误的servername。我已经研究了您的代码并发现您提供了 localhost 和 127.0.0.1 ,而是编写了使用openfire配置的服务器名称(主机名)你也可以在openfire管理控制台的主页上找到它的名字,比如 Mycomputer-pc 作为个人电脑的名字。
答案 1 :(得分:0)
我猜这里提供的服务器名称是错误的。尝试将其设置为使用openfire注册的hostname
,而不是localhost
。