Javascript XMPP:AngularJS+;斯特罗弗

Javascript XMPP:AngularJS+;斯特罗弗,javascript,angularjs,xmpp,strophe,Javascript,Angularjs,Xmpp,Strophe,带有strophe和javascript的基本XMPP希望转换为AngularJS .controller('loginCtrl', function(xmppAuth) { xmppAuth.auth(login, password); }) 和在役: .service('xmppAuth', function() { .return { auth: function(login, password) { connect = new Stroph

带有strophe和javascript的基本XMPP希望转换为AngularJS

.controller('loginCtrl', function(xmppAuth) {

    xmppAuth.auth(login, password);

})
和在役:

    .service('xmppAuth', function() {

.return {

    auth: function(login, password) {
       connect = new Strophe.Connection(domain);
       connect.connect(login, password, function (status) {
           if (status === Strophe.Status.CONNECTED) {
               connect.addHandler(on_roster_changed,"jabber:iq:roster", "iq", "set");
               connect.addHandler(on_iq, null, "iq","");
               connect.addHandler(on_presence, null, "presence");
               connect.addHandler(on_message, null, 'message', '');
           }
       }
    }

    }

})
在js文件中

var on_presence = function(presence){
    code
}
当我运行此命令时,没有错误。但是像on_presence()方法这样的所有处理事件只调用一次。这是Strophe连接对象的处理程序事件。这段代码中是否还有剩余的代码,或者我应该如何使用angularJS处理strophes事件

我引用了,但它不起作用。

请参阅:

如果要再次调用,则处理程序应返回true;返回false将在处理程序返回后删除该处理程序

因此,如果希望再次调用on_状态代码,则该代码应返回true:

var on_presence = function(presence) {
    // do some stuff
    return true;
};

是的,正如邮件列表中所说:文档没有充分强调这一事实。许多Strophe.js用户最初也犯了这个错误,包括我。我现在添加了一个PR来改进文档: