xmpp 登陆

XMPP中常用对象们:

XMPPStreamxmpp基础服务类

XMPPRoster好友列表类

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

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

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

xmppvCardAvatarModule好友头像

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

XMPPRoom提供多用户聊天支持

XMPPPubSub发布订阅


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

  1.    
  2. -(void)setupStream{    
  3.         
  4.     //初始化XMPPStream    
  5.     xmppStream = [[XMPPStream alloc] init];    
  6.     [xmppStream addDelegate:self delegateQueue:dispatch_get_current_queue()];    
  7.         
  8. }  


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

  1. -(BOOL)connect{    
  2.         
  3.     [self setupStream];    
  4.         
  5.     //从本地取得用户名,密码和服务器地址    
  6.     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];    
  7.         
  8.     NSString *userId = [defaults stringForKey:USERID];    
  9.     NSString *pass = [defaults stringForKey:PASS];    
  10.     NSString *server = [defaults stringForKey:SERVER];    
  11.         
  12.     if (![xmppStream isDisconnected]) {    
  13.         return YES;    
  14.     }    
  15.         
  16.     if (userId == nil || pass == nil) {    
  17.         return NO;    
  18.     }    
  19.         
  20.     //设置用户    
  21.     [xmppStream setMyJID:[XMPPJID jidWithString:userId]];    
  22.     //设置服务器    
  23.     [xmppStream setHostName:server];    
  24.     //密码    
  25.     password = pass;    
  26.         
  27.     //连接服务器    
  28.     NSError *error = nil;    
  29.     if (![xmppStream connect:&error]) {    
  30.         NSLog(@"cant connect %@", server);    
  31.         return NO;    
  32.     }    
  33.         
  34.     return YES;    
  35.     
  36. }    

连接服务器

  1. //启动连接操作后,回调函数(委托函数)  
  2.   
  3. - (void)xmppStreamWillConnect:(XMPPStream *)sender将被调用,表示将要连接  
  4.   
  5. - (void)xmppStreamDidConnect:(XMPPStream *)sender//登陆服务器成功  
  6.   
  7. {  
  8.   
  9.     NSError *error = nil;  
  10.   
  11.     //验证帐户密码  
  12.   
  13.     NSString *password = @"test1";  
  14.   
  15.     BOOL bRes =  [_xmppStream authenticateWithPassword:password error:&error];  
  16.   
  17. }  


验证账号
  1. //验证成功的回调函数  
  2.   
  3. - (void)xmppStreamDidAuthenticate:(XMPPStream *)sender  
  4.   
  5. {  
  6.   
  7.     XMPPPresence *presence = [XMPPPresencepresence];  
  8.     //可以加上上线状态,比如忙碌,在线等  
  9.     [[selfxmppStream] sendElement:presence];//发送上线通知  
  10.   
  11. }  
  12.   
  13. //验证失败的回调  
  14.   
  15. - (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(NSXMLElement *)error  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值