我正在构建一个机器人,监测朋友的存在,但不需要是可见的。我尝试使用priority、show、type和所有已知值设置presence,但都没有成功。有没有可能是看不见的,只是收到在线状态通知?
谢谢!
发布于 2012-04-14 12:41:44
参见XEP-0126: Invisibility,第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>发布于 2012-04-14 02:52:58
看一看rfc。Presence具有订阅状态。如果您的机器人订阅了接收来自用户的在线状态,但您的用户没有,他们将不会被通知机器人的在线状态。
换句话说,你的机器人应该发送:
<presence to="user@example.com" type="subscribe" />然后是用户的授权,
<presence to="bot@example.com" type="subscribed" />现在机器人将接收来自用户的在线状态,但不是相反。
发布于 2012-11-08 14:13:02
要将状态设置为变为不可见,您必须发送类型为“不可见”的在线状态。
<presence type="invisible"/>下面是代码(在ios中):
XMPPPresence *presence = [XMPPPresence presenceWithType:@"invisible"];
[[self xmppStream] sendElement:presence];我使用此代码将我的状态设置为“不可见”。有关更多详细信息,请阅读http://xmpp.org/extensions/xep-0018.html#sect-id86210上的文档
https://stackoverflow.com/questions/10141155
复制相似问题