XMPP聊天无形的存在(Xmpp chat invisible presence)

2019-07-28 23:16发布

我建立监测朋友派驻但不需要可见一个机器人。 我曾尝试使用优先级,显示,类型与所有的已知,值,但没有成功设置存在。 是不可能性是invisibile,只是接收状态通知?

谢谢!

Answer 1:

见XEP-0126:隐身术 ,第3.1节:

<iq from='bilbo@tolkien.lit/shire' type='set' id='inv1'>
  <query xmlns='jabber:iq:privacy'>
    <list name='invisible'>
      <item action='deny' order='1'>
        <presence-out/>
      </item>
    </list>
  </query>
</iq>


Answer 2:

看一看的RFC 。 存在有一个订阅状态。 如果你的机器人订阅,从您的用户收到的存在,但你的用户都没有,他们不会通知机器人的存在。

换句话说,你的机器人应该发送:

<presence to="user@example.com" type="subscribe" />

其次是用户的授权,

<presence to="bot@example.com" type="subscribed" />

现在,机器人将接收来自用户的存在,而不是相反。



Answer 3:

要设置状况的变成隐形,你必须发送一个存在类型为“隐形”。

<presence type="invisible"/>

这里是代码(IOS):

XMPPPresence *presence = [XMPPPresence presenceWithType:@"invisible"];
[[self xmppStream] sendElement:presence];

我用这个代码来设置我的状态为“无形”。 有关详细信息,请阅读文档http://xmpp.org/extensions/xep-0018.html#sect-id86210



Answer 4:

最后,我从Facebook知道,这是不可能实现的隐形通过XMPP命令: https://developers.facebook.com/bugs/315067461919373 。 又见https://developers.facebook.com/docs/chat/下限制



文章来源: Xmpp chat invisible presence