Javascript XMPP:AngularJS+;斯特罗弗
带有strophe和javascript的基本XMPP希望转换为AngularJSJavascript 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
.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来改进文档: