mik*_*kek 4 javascript xmpp strophe angularjs
我有一个基本的XMPP客户端在strophe.js上工作.
在登录时我创建了诸如的处理程序
connect = new Strophe.Connection('http://localhost/http-bind');
...
...
connect.addHandler(on_message, null, "message", "chat");
connect.addHandler(on_presence, null, "presence");
...
...
Run Code Online (Sandbox Code Playgroud)
然后我"倾听"那些
function on_presence(presence) {
// handling presence
}
function on_message(presence) {
// handling presence
}
Run Code Online (Sandbox Code Playgroud)
所以我想把它"转换"成AngularJS.第一部分非常简单.我有一个控制器,可以正常处理登录部分:
angular.module('app').controller('loginCtrl', function($scope) {
connect = new Strophe.Connection('http://website.com/http-bind');
connect.connect(data.jid, data.password, function (status) {
if (status === Strophe.Status.CONNECTED) {
connect.addHandler(on_message, null, "message", "chat");
connect.addHandler(on_presence, null, "presence");
}
}
})
Run Code Online (Sandbox Code Playgroud)
但是,我如何实际开始在我所拥有的所有控制器的角度上下文中监听这些事件(on_message,on_presence).
如上所述(或下面提到)我在服务中包装strophe所以我的登录"机制"看起来像这样:
.controller('loginCtrl', function(xmppAuth) {
xmppAuth.auth(login, password);
})
Run Code Online (Sandbox Code Playgroud)
我的任何服务:
.service('xmppAuth', function() {
return {
auth: function(login, password) {
connect = new Strophe.Connection('http://mydomain.net/http-bind');
connect.connect(login, password, function (status) {
if (status === Strophe.Status.CONNECTED) {
// we are in, addHandlers and stuff
}
}
}
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6885 次 |
| 最近记录: |