【问题标题】:GAE unsubscribe from a user's presenceGAE 取消订阅用户的存在
【发布时间】:2011-12-15 08:38:27
【问题描述】:

有没有办法取消订阅用户的存在?我不再希望接收特定用户的 /_ah/xmpp/presence/... 的更新。我似乎找不到一个简单的 API 调用来做到这一点。

在研究了 XMPP 协议后,我发现了this,这似乎表明使用存在类型“取消订阅”的 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")(根据 xmpp 规范,PRESENCE_TYPE_AVAILABLE 和其他只是像“available”这样的字符串)

有没有人遇到过这个问题或知道如何解决这个问题?

【问题讨论】:

    标签: python google-app-engine xmpp


    【解决方案1】:

    看来你不能。 The docs(和文档字符串)确认 present_type 接受 RFC 3921 中定义的类型的子集。

    您可以将此作为功能请求提交至the issue tracker

    【讨论】:

      【解决方案2】:

      作为一个实验,您可以重新实现自己的“send_presence”,它与现有函数执行相同的操作,而无需检查有效的存在类型。未经官方批准,但值得一试。

      需要注意的一点是,这不会阻止客户重新订阅您的机器人或忽略它的行为不端的客户。

      正如 Drew 所说,请务必在问题跟踪器上提交问题。

      【讨论】:

      • @Moise - 抱歉耽搁了,我正在一个互联网连接不稳定的地区旅行。我今天将尝试这个并发布更新
      猜你喜欢
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 2018-12-30
      • 2013-08-23
      • 2021-10-07
      相关资源
      最近更新 更多