0

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,

Sonu
  • 937
  • 1
  • 10
  • 39

1 Answers1

1

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
Nitin Gohel
  • 49,482
  • 17
  • 105
  • 144