“不可用”(离线)存在下,在两个端
问题描述:
不更新我用- (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];
和好友的存在下,在发送侧本地更新。
对于无阻碍的情况,我只是再次订阅好友(其他最终用户)。
我不知道它的正确方法。我一直在等待你们所有人的完美解决方案。
如果您想阻止某人,为什么不撤销呈现订阅? – dichen
是的。我试过了,但是如果我喜欢这样做,当我解锁时我需要做什么? –
不知道你需要解锁。检查“阻止通信”https://xmpp.org/rfcs/rfc3921.html#privacy – dichen