【问题标题】:How to receive message stanza without sending self presence?如何在不发送自我存在的情况下接收消息节?
【发布时间】:2019-02-02 19:47:03
【问题描述】:

我将 mongooseim 与 A​​ndroid 和 Ios 应用程序一起使用。我只想从后台接收来自服务器的消息,而不向任何人发送自我存在,因为此任务是由系统完成的。但是在我将我的存在发送到 mongooseIM 之前,我无法接收消息节。

我是否遗漏了什么,或者有一种方法可以在后台从 MongooseIM 服务器快速更新而无需发送出席信息?

【问题讨论】:

  • 我找到了 2 个相关的 XEP 可以提供帮助 - XEP-0018(已弃用,并且这在 Mongooseim 中也不起作用,尽管它确实支持)和 XEP-0126(已弃用,但它工作正常。这会影响此人的上次活动,因为它确实发送了 )。有什么建议吗?
  • 为什么您需要跳过发送初始状态?如果您的名册中没有用户,则不会导致存在广播。如果您有一些名册联系人,为什么不应该通知他们您上网?无论如何,似乎存在一些不可见的代码 - github.com/esl/MongooseIM/blob/… - 但它可能已经有点烂了。我不确定这是否可能。
  • 嗨,erszcz,很高兴见到你。我正在从后台连接到 xmpp 服务器(就像 Mongooseim 推送关于可用的新消息节的静默推送),因为我只想获取消息节而不在线,直到用户明确打开 android/ios 应用程序
  • 因为有可能 user2 已经向 user1 发送了消息,而 user2 正在等待 user1 的在线状态(两者都已订阅)。在这种情况下,如果我启用了 mongooseim 推送(静音)。我只希望 user2 客户端从后台连接到服务器而不显示在线状态,然后接收消息。
  • 我也在使用 XEP-0022 处理消息事件,一旦 user1 在后台收到消息,他的客户就会将传递的消息节回复发送给 user1,而不显示在线状态。

标签: xmpp ejabberd mongoose-im


【解决方案1】:

据我了解,您想要做的就是在收到推送通知时同步消息。 MongooseIM 可以配置为提供一个简单的 HTTP API,您可以使用它获取存档消息(mod_mam 需要启用),而无需建立 XMPP 连接。更多细节可以在HTTP API doc 中找到,尤其是关于get messages 的 Swagger 文档。让我知道这是否适合您。

【讨论】:

  • 是的,这正是我想要的
  • 另外,我正在使用 mod_offline 模块。这个 HTTP API 文档也可以使用吗?
  • 很高兴这对您有所帮助 :) 关于离线消息,目前没有 HTTP API 不提供它们。
  • 嗨@michalwski,我在stackoverflow.com/q/54630204/3102733 上问了更详细的问题。虽然这个问题更多是从 Android/Firebase 的角度来看的。我仍然添加了 Mongooseim 标签,因为它是相关的
  • 我只是想知道这个新问题的最佳方法
猜你喜欢
  • 1970-01-01
  • 2010-10-30
  • 2012-05-25
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2021-07-14
  • 2014-01-28
  • 1970-01-01
相关资源
最近更新 更多