Reputation: 957
I'm developing chat based application using XMPP. I'm stuck to get Notification of user get online or offline.
Below method is not called when any roster friend goes online or offline.
- (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence
{
NSString *presenceType = [presence type]; // online/offline
NSString *myUsername = [[sender myJID] user];
NSString *presenceFromUser = [[presence from] user];
if (![presenceFromUser isEqualToString:myUsername])
{
if ([presenceType isEqualToString:@"available"]) {
// [_chatDelegate newBuddyOnline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, @"chat.denederlandsewateren.nl"]];
} else if ([presenceType isEqualToString:@"unavailable"]) {
// [_chatDelegate buddyWentOffline:[NSString stringWithFormat:@"%@@%@", presenceFromUser, @"chat.denederlandsewateren.nl"]];
}
}
}
Please suggest me or guide me how to deal with - (void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence
Regards,
Upvotes: 0
Views: 318
Reputation: 49730
I think you need to send presence using following code:
NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
[xmppStream sendElement:presence];
OR
XMPPPresence *presence = [XMPPPresence presence];
[[self xmppStream] sendElement:presence];
So after that i guess the following method called:
-(void)xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence
Upvotes: 1