XMPP好友列表3

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

// Roster

我们继续写 获取好友列表

.h

1/*!2* @Author Dylan.3*4* Roster5*/67typedefvoid(^refreshRosterListFailure) (id);8typedefvoid(^Rosterlist) (id);910/*!11* @Author Dylan.12*13* request for roster list. IQ14*/15- (void)refreshRosterList: (Rosterlist)success16failure: (refreshRosterListFailure)failure;17@PRoperty (nonatomic, strong) NSMutableDictionary * rosterDict;

.m

1#pragmamark - rosterList23- (void)initRosterlist {4self.rosterDict =[NSMutableDictionary dictionary];5}67- (void)refreshRosterList: (Rosterlist)success8failure: (refreshRosterListFailure)failure {910//call back11self.refreshSuccess =success;12self.refreshFailure =failure;1314NSxmlElement * query = [NSXMLElement elementWithName:@"query"xmlns:@"jabber:iq:roster"];15NSXMLElement * iq = [NSXMLElement elementWithName:@"iq"];1617XMPPJID * myJID =self.xmppStream.myJID;18[iq addAttributeWithName:@"from"stringValue:myJID.description];19[iq addAttributeWithName:@"to"stringValue:myJID.domain];20[iq addAttributeWithName:@"id"stringValue:@"123456"];21[iq addAttributeWithName:@"type"stringValue:@"get"];22[iq addChild:query];2324[self.xmppStream sendElement:iq];25}2627- (void)xmppStream:(XMPPStream *)sender didFailToSendIQ:(XMPPIQ *)iq error:(NSError *)error {28self.refreshFailure(error);29}3031//get user list32- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq {3334//kind of result35if([@"result"isEqualToString:iq.type]) {36NSXMLElement * query =iq.childElement;3738if([@"query"isEqualToString:query.name]) {39NSArray * items =[query children];40for(NSXMLElement * iteminitems) {41NSString * jid = [item attributeStringValueForName:@"jid"];42XMPPJID * xmppJID =[XMPPJID jidWithString:jid];43[_rosterDict setValue:xmppJID forKey:jid];44}45}46//block47self.refreshSuccess(_rosterDict);48returnYES;49}5051NSLog(@"get iq error");52returnNO;53}545556@end

// 顺便写出在点m文件中我写的回掉Block 的属性

1@interfaceADXMPPConn ()23/*!4* @Author Dylan.5*6* Call back Block7*/8@property (nonatomic, copy) connectSuccess connSuccess;9@property (nonatomic, copy) AuthenticateFailure authenFailure;1011@property (nonatomic, copy) registerSuccess regisSuccess;12@property (nonatomic, copy) registerFailure regisFailure;1314/*!15* call back block16*/17@property (nonatomic, copy) sendSuccess success;18@property (nonatomic, copy) sendFailure failure;1920/*!21* call back block22*/23@property (nonatomic, copy) refreshRosterListFailure refreshFailure;24@property (nonatomic, copy) Rosterlist refreshSuccess;2526@end

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航