使用适用于iOS的XMPP Framework:在订户可用/不可用时接收在线状态

时间:2013-07-25 16:05:07

标签: ios xmpp subscription

我正在尝试实现XMPPStream类的一些委托方法,其中一个是xmppStream:(XMPPStream *)sender didReceivePresence:(XMPPPresence *)presence。我注册了两个用户,两个用户都订阅了对方的状态通知。我注意到的一点是,只有在用户授权时才会调用didReceivePresence方法。断开和/或连接用户不会向用户通知它。当我订阅的某人离线/在线时,我该怎么做才能收到通知? 我用来向XMPPStream发送状态的代码是:

- (void) goOnline
{
    XMPPPresence *presence = [XMPPPresence presence];
    [_stream sendElement:presence];
}

- (void) goOffline
{
    XMPPPresence *presence = [XMPPPresence presenceWithType:@"unavailable"];
    [_stream sendElement:presence];
}

1 个答案:

答案 0 :(得分:2)

实际上我的设置是正确的,但我没有订阅用户的在线状态通知,我想如果他在我的名单中,我会自动收到此通知。不要忘记您必须使用acceptPresenceSubscriptionRequestFrom方法接受在线订阅请求。 如果您收到订阅请求,则会自动将该用户添加到您的名单中,并将您添加到他的名单中,但在您不接受订阅请求之前,您都不会收到状态消息。