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

2014-11-24 03:04:29 · 作者: · 浏览: 1

好友列表和好友名片

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

    [cpp]
    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. }
      [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. NSLog(@presence2:%@ sender2:%@,presence,sender);
      10. XMPPJID *jid = [XMPPJID jidWithString:presenceFromUser];
      11. //接收添加好友请求
      12. [xmppRoster acceptPresenceSubscriptionRequestFrom:jid andAddToRoster:YES];
      13. }

        删除好友

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