有没有办法取消订阅用户的存在?我不想再为特定用户接收/ _ah / xmpp / presence / ...的更新。我似乎无法找到一个简单的API调用来做到这一点。
在挖掘XMPP协议后,我发现this似乎表明使用存在类型'unsubscribe'执行send_presence应该有效。不幸的是,深入了解GAE的xmpp API,它似乎定义了
_VALID_PRESENCE_TYPES = frozenset([PRESENCE_TYPE_AVAILABLE,
PRESENCE_TYPE_UNAVAILABLE,
PRESENCE_TYPE_PROBE])
这意味着我甚至无法执行send_presence(user_to_remove, status="", presence_type="unsubscribe")
(PRESENCE_TYPE_AVAILABLE,而其他只是根据xmpp规范的“可用”字符串)
有没有人遇到过这个问题或知道如何实现这个目标?
答案 0 :(得分:3)
似乎你无法做到。 The docs(和docstring)确认presence_type接受RFC 3921中定义的类型的子集。
您可以将此作为功能请求提交给the issue tracker。
答案 1 :(得分:2)
作为一项实验,您可以重新实现自己的“send_presence”,它与现有功能完全相同,而无需检查有效的状态类型。没有正式批准,但值得一试。
有一点需要注意的是,这不会阻止客户端重新订阅您的机器人或忽视它的行为不端的客户。
正如德鲁所说,请在问题跟踪器上提交一个问题。