Sonu
Sonu

Reputation: 957

How to get User's availability notification in iOs?

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

Answers (1)

Nitin Gohel
Nitin Gohel

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

Related Questions