实现好友请求
.m
1 #pragma mark - rosterHandle 2 3 // initRoster 4 - (void)initRoster { 5 self.xmppRosterMemory = [[XMPPRosterMemoryStorage alloc] init]; 6 self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:self.xmppRosterMemory]; 7 [_xmppRoster addDelegate:self delegateQueue:dispatch_get_main_queue()]; 8 [_xmppRoster activate:self.xmppStream]; 9 } 10 11 - (void)addFriend: (NSString *)accountName { 12 [_xmppRoster addUser:[XMPPJID jidWithString:[accountName stringByAppendingString:DOMAINS]] withNickname:nil]; 13 } 14 15 - (void)removeFriend: (NSString *)accountName { 16 [_xmppRoster removeUser:[XMPPJID jidWithString:[accountName stringByAppendingString:DOMAINS]]]; 17 } 18 19 // call back 20 - (void)dealWithFriendAsk: (BOOL)isAgree 21 accountName: (NSString *)accountName { 22 XMPPJID * jid=[XMPPJID jidWithString:[NSString stringWithFormat:@"%@%@",accountName,DOMAINS]]; 23 if(isAgree){ 24 [self.xmppRoster acceptPresenceSubscriptionRequestFrom:jid andAddToRoster:NO]; 25 }else{ 26 [self.xmppRoster rejectPresenceSubscriptionRequestFrom:jid]; 27 } 28 29 } 30 31 #pragma mark addFriendDelegateMethods 32 - (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence { 33 34 NSString *presenceFromUser =[NSString stringWithFormat:@"%@", [[presence from] user]]; 35 if (self.acceptOrDenyFriend != nil) { 36 BOOL isAgree = self.acceptOrDenyFriend(presenceFromUser); 37 [self dealWithFriendAsk:isAgree accountName:presenceFromUser]; 38 } 39 } 40 41 @end
.h
1 /*! 2 * @Author Dylan. 3 * 4 * addRoster. 5 */ 6 // if you want to deny or add friend. please call this block 7 @property (nonatomic, copy) BOOL (^acceptOrDenyFriend) (NSString *); 8 @property (nonatomic, strong) XMPPRoster * xmppRoster; 9 10 /*! 11 * @Author Dylan. Methods 12 */ 13 - (void)addFriend: (NSString *)accountName; 14 - (void)removeFriend: (NSString *)accountName;