“不可用”(离线)存在下,在两个端

问题描述:

不更新我用- (void)blockJID:(XMPPJID*)xmppJID方法在XMPPBlocking“不可用”(离线)存在下,在两个端

<iq from='[email protected]/chamber' type='set' id='block1'> 
     <block xmlns='urn:xmpp:blocking'> 
     <item jid='[email protected]'/> 
     </block> 
    </iq> 

我想阻止在XMPP应用(例如WhatsApp)(多个)用户。当我使用上面的代码时,“不可用”存在不在两端更新。但重新连接后,它会更新两端的“不可用”状态。

当我阻止用户,我的要求是,

  • 用户不应该在两端接收消息(它完美的作品,甚至没有重新连接)
  • 两个用户应该是“不可用”(另一端不接收任何事情,当我执行智商以上,所以只能在重新连接后工作)

我怎样才能通知线下隔离存在阻塞后? 我如何以适当的方式实现这一点?

终于我完成了。

对于通知下面的代码中使用的好友(其他最终用户),

XMPPPresence *presence = [[XMPPPresence alloc] initWithType:@"unavailable" to:jid]; 
[_xmppStream sendElement:presence]; 

和好友的存在下,在发送侧本地更新。

对于无阻碍的情况,我只是再次订阅好友(其他最终用户)。

我不知道它的正确方法。我一直在等待你们所有人的完美解决方案。

+0

如果您想阻止某人,为什么不撤销呈现订阅? – dichen

+0

是的。我试过了,但是如果我喜欢这样做,当我解锁时我需要做什么? –

+0

不知道你需要解锁。检查“阻止通信”https://xmpp.org/rfcs/rfc3921.html#privacy – dichen