• XMPPFrameWork IOS 开发(三)登录


    原始地址:XMPPFrameWork IOS 开发(三)

    XMPP中常用对象们:

     

    XMPPStream:xmpp基础服务类

     

    XMPPRoster:好友列表类

     

    XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类

     

    XMPPvCardCoreDataStorage:好友名片(昵称,签名,性别,年龄等信息)在core data中的操作类

    XMPPvCardTemp:好友名片实体类,从数据库里取出来的都是它

    xmppvCardAvatarModule:好友头像

     

    XMPPReconnect如果失去连接,自动重连

    XMPPRoom提供多用户聊天支持

    XMPPPubSub发布订阅


    第一步 生成xmppstream对象 并且设置委托

     

     
    -(void)setupStream{  
          
        //初始化XMPPStream  
        xmppStream = [[XMPPStream alloc] init];  
        [xmppStream addDelegate:self delegateQueue:dispatch_get_current_queue()];  
          
    }


     

    第二步 设置登陆帐户名字与服务器名字,并连接

     

    -(BOOL)connect{  
          
        [self setupStream];  
          
        //从本地取得用户名,密码和服务器地址  
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
          
        NSString *userId = [defaults stringForKey:USERID];  
        NSString *pass = [defaults stringForKey:PASS];  
        NSString *server = [defaults stringForKey:SERVER];  
          
        if (![xmppStream isDisconnected]) {  
            return YES;  
        }  
          
        if (userId == nil || pass == nil) {  
            return NO;  
        }  
          
        //设置用户  
        [xmppStream setMyJID:[XMPPJID jidWithString:userId]];  
        //设置服务器  
        [xmppStream setHostName:server];  
        //密码  
        password = pass;  
          
        //连接服务器  
        NSError *error = nil;  
        if (![xmppStream connect:&error]) {  
            NSLog(@"cant connect %@", server);  
            return NO;  
        }  
          
        return YES;  
      
    }  


    连接服务器

     

    //启动连接操作后,回调函数(委托函数)
    
    - (void)xmppStreamWillConnect:(XMPPStream *)sender将被调用,表示将要连接
    
    - (void)xmppStreamDidConnect:(XMPPStream *)sender//登陆服务器成功
    
    {
    
        NSError *error = nil;
    
        //验证帐户密码
    
        NSString *password = @"test1";
    
        BOOL bRes =  [_xmppStream authenticateWithPassword:password error:&error];
    
    }


    验证账号

    //验证成功的回调函数
    
    - (void)xmppStreamDidAuthenticate:(XMPPStream *)sender
    
    {
    
        XMPPPresence *presence = [XMPPPresencepresence];
        //可以加上上线状态,比如忙碌,在线等
        [[selfxmppStream] sendElement:presence];//发送上线通知
    
    }
    
    //验证失败的回调
    
    - (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error



  • 相关阅读:
    TensorFlow入门:debug方法
    Firefox 隐藏提示:正在安装组件,以便播放此页面的音频或视频
    CentOS 6.5挂载windows NTFS硬盘
    Linux中执行shell脚本
    CentOS opera 浏览器
    CentOS 更新为网易yum源
    Centos下替换yum源为阿里云源
    CentOS常用基础命令大全
    Linux CentOS删除或重命名文件夹和文件的办法
    给Centos7装上Chromium
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3258135.html
Copyright © 2020-2023  润新知