这章开发添加和删除好友的模块,首先列出里面主要的方法:
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
添加好友
1 //name为用户账号
2 - (void)XMPPAddFriendSubscribe:(NSString *)name
3 { 4 NSString *XMPPHOST=@"helloworldtekimac-mini.local"; 5 //XMPPHOST 就是服务器名, 主机名 6 XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",name,XMPPHOST]]; 7 //[presence addAttributeWithName:@"subscription" stringValue:@"好友"]; 8 [xmppRoster subscribePresenceToUser:jid]; 9 10 }
第8行是核心代码,负责向服务器提交添加好友的请求
删除好友
1 //删除好友,name为好友账号
2 - (void)removeBuddy:(NSString *)name
3 { 4 NSString *XMPPHOST=@"helloworldtekimac-mini.local"; 5 6 XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",name,XMPPHOST]]; 7 8 [xmppRoster removeUser:jid]; 9 }
第8行是核心代码,负责想服务器提交删除好友的请求