【问题标题】:"unavailable"(Offline) presence not updating at the both end“不可用”(离线)状态不在两端更新
【发布时间】:2017-01-03 02:52:36
【问题描述】:

我在XMPPBlocking 类中使用了- (void)blockJID:(XMPPJID*)xmppJID 方法

<iq from='juliet@capulet.com/chamber' type='set' id='block1'>
      <block xmlns='urn:xmpp:blocking'>
         <item jid='romeo@montague.net'/>
      </block>
    </iq>

我想在 xmpp 应用程序(如 whatsapp)中阻止用户。当我使用上面的代码时,“不可用”的存在不会在两端更新。但重新连接后,它会更新两端的“不可用”状态。

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

  • 用户不应在两端接收消息(即使重新连接也能正常工作)
  • 两个用户都应该是“不可用”(当我在 IQ 以上执行时,另一端没有收到任何东西,所以只有在重新连接后才能工作)

屏蔽后如何通知对方离线状态? 我怎样才能以适当的方式实现这一目标?

【问题讨论】:

    标签: ios objective-c xmppframework


    【解决方案1】:

    我终于完成了。

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

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

    并且好友的状态在发送方本地更新。

    对于解锁情况,我只是再次订阅好友(其他最终用户)。

    我不知道它是否正确。我一直在等待大家的完美解决方案。

    【讨论】:

    • 如果您想阻止某人,为什么不撤销在线状态订阅?
    • 是的。我试过了,但如果我这样做了,我解锁时需要做什么?
    • 不知道您需要解除阻止。检查Blocking Communicationxmpp.org/rfcs/rfc3921.html#privacy
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2016-11-10
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多