zoukankan      html  css  js  c++  java
  • openfire Android学习---android客户端聊天开发之登录 和 注销登录

    一切就绪,新建一个android测试工程:

    上网权限配置,界面绘制啥的,这里就不说了。

    首先 导入一个smark包。这个是用来维护长连接的,也可以是asmark。我用的是asmark


    先普及一些基本知识:

    在xmpp中,所有东西的传输都是通过一个XMPPConnection的对象来进行传输的。 它给一个xml头,当服务器收到xml尾的时候,认为一次连接结束了


    既然这样的话我们第一步就是拿到这个连接

    /**
    * 连接服务器
    * 
    * @return
    */
    public boolean conServer() {
    ConnectionConfiguration config = new ConnectionConfiguration("192.168.2.115", 5222);
    
    /** 是否启用安全验证 */
    config.setSASLAuthenticationEnabled(false);
    /** 是否启用调试 */
    // config.setDebuggerEnabled(true);
    /** 创建connection链接 */
    try {
    connection = new XMPPConnection(config);
    /** 建立连接 */
    connection.connect();
    return true;
    } catch (XMPPException e) {
    e.printStackTrace();
    }
    return false;
    }


    这个方法就不详细说了,拿进去肯定就可以用了connection 就是 XMPPConnection。建议定义为全局的,或者static的,因为我们一直要使用


    成功拿到了连接之后就可以进行登录操作了


    /**
    * 登录
    * 
    * @param a 登录帐号
    * @param p 登录密码
    * @return
    */
    public boolean login(String a, String p) {
    try {
    if (connection == null)
    return false;
    /** 登录 */  
    connection.login(a, p);
    return true;
    } catch (Exception e) {
    e.printStackTrace();
    }
    return false;
    }


    调用方法时候记得填对用户名和密码


    调用完登录方法后,去服务器看一下吧


    成功登录后刷新一下用户组页面,可以看到,你的那个用户状态处于登录状态了哦


    接下来看一下注销登录:

    直接退出  程序   connection销毁了,其实就已经注销了,但是我们作为程序员不能这么干,哈哈

       

     /** 
         * 注销当前用户登录 
         * @param connection 
         * @return 
         */  
        public static boolean deleteAccount(XMPPConnection connection)  
        {  
            try {  
                connection.getAccountManager().deleteAccount();  
                return true;  
            } catch (Exception e) {  
                return false;  
            }  
        }


    用一个按钮去调这个方法就OK啦

    试一下吧,今儿就到这了,


    下一个说说聊天功能的开发

  • 相关阅读:
    箭头函数(Arrow Functions)
    MySQL 下载与安装
    IDEA设置Ctrl+滚轮调整字体大小
    使用OpenLayers 勾画地图
    为什么总是听到前辈说不要过量使用全局变量
    CSS揭秘—多重边框(二)
    一个需求认识CSS3 的transform-origin属性
    defer和async的区别
    input和extarea在ios safari中的内阴影解决方法
    document.getElementById 和 document.getElementsByClassName获取DOM元素的区别
  • 原文地址:https://www.cnblogs.com/jasonkent27/p/4098443.html
Copyright © 2011-2022 走看看