Strophe.js总是给出AUTHFAIL状态

时间:2013-06-26 05:05:31

标签: xmpp openfire strophe bosh

我正在使用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帮助。

2 个答案:

答案 0 :(得分:0)

@ amirinder007您在代码中提供了错误的servername。我已经研究了您的代码并发现您提供了 localhost 127.0.0.1 ,而是编写了使用openfire配置的服务器名称(主机名)你也可以在openfire管理控制台的主页上找到它的名字,比如 Mycomputer-pc 作为个人电脑的名字。

答案 1 :(得分:0)

我猜这里提供的服务器名称是错误的。尝试将其设置为使用openfire注册的hostname,而不是localhost