码迷,mamicode.com
首页 > 其他好文 > 详细

xmpp登录(2)

时间:2014-05-04 11:14:22      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:blog   class   tar   color   width   get   

XMPP中常用对象们:

 

XMPPStream:xmpp基础服务类

 

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  



xmpp登录(2),布布扣,bubuko.com

xmpp登录(2)

标签:blog   class   tar   color   width   get   

原文地址:http://www.cnblogs.com/yulang314/p/3705587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!