2

我正在尝试实现 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];
}
4

1 回答 1

3

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

于 2013-07-26T09:01:34.777 回答