美文网首页
Xmpp第一篇

Xmpp第一篇

作者: Cheep | 来源:发表于2018-09-21 08:52 被阅读0次

    简述

        公司最近做一个IM聊天软件,不要问我为什么用这么古老的东西,撒碧领导、撒碧领导、撒碧领导,重要的事情说三遍!
    
        Xmpp是一种基于标准通用标记言语的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的扩展性。
    经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。
    而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一配好系统添加功能。
    

    资源文件

    • smack-android-4.1.9.jar
    • smack-android-extensions-4.1.9.jar
    • smack-core-4.1.9.jar
    • smack-experimental-4.1.9.jar
    • smack-extensions-4.1.9.jar
    • smack-im-4.1.9.jar
    • smack-jingle-old-4.1.9.jar
    • smack-sasl-provided-4.1.9.jar
    • smack-tcp-4.1.9.jar

    开始我们的正菜

    <1> 打开连接

    public AbstractXMPPConnection connection;
    public String XMPP_RESOURCE ="android";
    public String XMPP_HOST ="114.114.114.114"; 
    public boolean openConnection(){
        try{
            if(null == connection || !connection.isAuthenticated()){
                SmackConfiguration.DEBUG = true;
                XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
                //设置端名称
                config.setResource(XMPP_RESOURCE)
                //服务器IP地址
                config.setHost(XMPP_HOST)
                //服务器端口
                config.setPort(Constant.XMPP_PORT)
                //设置登录状态
                config.setSendPresence(false)
                //服务器名称
                config.setServiceName(Constant.XMPP_HOST)
                //是否开启安全模式
                config.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled)
                //是否开启压缩
                config.setCompressionEnabled(false)
                //开启调试模式
                config.setDebuggerEnabled(true).build();
                //需要经过同意才可以添加好友 manual 添加直接通过accept_all
                Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.manual);
                connection = new XMPPTCPConnection(config);
                
                //认证相关内容---需要认证添加,否则注销
                SASLMechanism mechanism = new SASLDigestMD5Mechanism();
                SASLAuthentication.regusterSASLMechanism(mechanism);
                SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1");
                SASLAuthentication.blacklistSASLMechanism("DIGEST-MD5");
    
                connection.connect();
            }
        } catch (Exception e){
            e.printStackTrace();
            connection = null;
        }
    }
    

    <2> 登陆

        connection.login("账号","密码");
        if(connection.isAuthenticated()){
            //登陆成功
        }
    

    <3> 注册

        public boolean register(String 账号,String 密码){
            try{
                AccountManager.getInstance(connection).createAccount(账户,密码);
            }catch(Exception e){
                e.printStackTrace();
                return false;       //注册失败
            }
            return true;            //注册成功
        }
    

    结束语:

        今天白天还在赶项目,晚上感觉很疲劳,想休息一下。再看看爱情保卫看到很多情侣因为房子车子再努力奋斗,而没有时间关系对方,导致分手的比比皆是。
        所以激发一个IT男的热血,奋斗吧!少年!

    相关文章

      网友评论

          本文标题:Xmpp第一篇

          本文链接:https://www.haomeiwen.com/subject/qnxvbftx.html