XMPP:AngularJs + Strophe.js

 mobiledu2502930087 发布于 2023-01-08 12:07

我有一个基本的XMPP客户端在strophe.js上工作.

在登录时我创建了诸如的处理程序

connect = new Strophe.Connection('http://localhost/http-bind');
...
...

    connect.addHandler(on_message, null, "message", "chat");
    connect.addHandler(on_presence, null, "presence");

...
...

然后我"倾听"那些

function on_presence(presence) {
// handling presence
}

function on_message(presence) {
// handling presence
}

所以我想把它"转换"成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");
  }
}
})

但是,我如何实际开始在我所拥有的所有控制器的角度上下文中监听这些事件(on_message,on_presence).

2 个回答
  • 如上所述(或下面提到)我在服务中包装strophe所以我的登录"机制"看起来像这样:

    .controller('loginCtrl', function(xmppAuth) {
    
        xmppAuth.auth(login, password);
    
    })
    

    我的任何服务:

    .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
           }
       }
    }
    
    }
    
    })
    

    2023-01-08 12:09 回答
  • 在角度服务中包裹Strophe .Angular Services旨在用作单例,因此您将能够实例化一次Strophe服务,并在任何地方使用它(使用依赖注入).

    2023-01-08 12:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有