XMPP学习记录五:添加好友和删除好友

来源:互联网 发布:在线开放课程 网络课程 编辑:程序博客网 时间:2024/04/30 09:39

好友列表和好友名片

[cpp] view plaincopyprint?
  1. [_xmppRoster fetchRoster];//获取好友列表  
  2.   
  3. //获取到一个好友节点  
  4. - (void)xmppRoster:(XMPPRoster *)sender didRecieveRosterItem:(NSXMLElement *)item  
  5.   
  6. //获取完好友列表  
  7. - (void)xmppRosterDidEndPopulating:(XMPPRoster *)sender  
  8.   
  9. //到服务器上请求联系人名片信息  
  10. - (void)fetchvCardTempForJID:(XMPPJID *)jid;  
  11.   
  12. //请求联系人的名片,如果数据库有就不请求,没有就发送名片请求  
  13. - (void)fetchvCardTempForJID:(XMPPJID *)jid ignoreStorage:(BOOL)ignoreStorage;  
  14.   
  15. //获取联系人的名片,如果数据库有就返回,没有返回空,并到服务器上抓取  
  16. - (XMPPvCardTemp *)vCardTempForJID:(XMPPJID *)jid shouldFetch:(BOOL)shouldFetch;  
  17.   
  18. //更新自己的名片信息  
  19. - (void)updateMyvCardTemp:(XMPPvCardTemp *)vCardTemp;  
  20.   
  21. //获取到一盒联系人的名片信息的回调  
  22. - (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule   
  23.         didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp   
  24.                      forJID:(XMPPJID *)jid  

添加好友

[cpp] view plaincopyprint?
  1. //name为用户账号  
  2. - (void)XMPPAddFriendSubscribe:(NSString *)name    
  3. {    
  4.   //XMPPHOST 就是服务器名,  主机名      
  5.     XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",name,XMPPHOST]];    
  6.     //[presence addAttributeWithName:@"subscription" stringValue:@"好友"];    
  7.     [xmppRoster subscribePresenceToUser:jid];    
  8.         
  9. }  

[cpp] view plaincopyprint?
  1. //收到添加好友的请求  
  2. - (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence    
  3. {    
  4.     //取得好友状态    
  5.     NSString *presenceType = [NSString stringWithFormat:@"%@", [presence type]]; //online/offline    
  6.     //请求的用户    
  7.     NSString *presenceFromUser =[NSString stringWithFormat:@"%@", [[presence from] user]];    
  8.     NSLog(@"presenceType:%@",presenceType);    
  9.         
  10.     NSLog(@"presence2:%@  sender2:%@",presence,sender);    
  11.         
  12.     XMPPJID *jid = [XMPPJID jidWithString:presenceFromUser];    
  13.     //接收添加好友请求  
  14.     [xmppRoster acceptPresenceSubscriptionRequestFrom:jid andAddToRoster:YES];    
  15.     
  16. }    


删除好友

[cpp] view plaincopyprint?
  1. //删除好友,name为好友账号  
  2. - (void)removeBuddy:(NSString *)name    
  3. {    
  4.     XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",name,XMPPHOST]];    
  5.         
  6.     [self xmppRoster] removeUser:jid];    
  7. }