【问题标题】:How the XMPP client must notified of new Message, when app is in background?当应用程序在后台时,XMPP 客户端如何通知新消息?
【发布时间】:2018-06-19 10:19:38
【问题描述】:

考虑到OPENFIRE不支持XEP-0357(Push Notification),那么客户端必须如何通知新消息呢?用户连接是否必须始终可用?但在 WhatsApp 等其他消息传递应用程序中,当用户进入后台时,它的存在变成了不可用。另一个问题是开发它的 iOS 版本,它不支持像 android 那样的背景服务存在。 在这种情况下,其他 IM 客户端会怎么做?

【问题讨论】:

  • 它无法工作。您需要部署一个对移动规范有良好支持的服务器。另请注意,在最新的 Android 上,在大多数情况下,您也无法在后台运行客户端。
  • 感谢@MickaëlRémond 的回复。正如你所说,我正在我的服务器中开发一个本地API,以发送推送通知。此本地 API 将拥有每个 jid 的所有用户令牌。当用户离线时,openfire 服务器将使用callbackOnOffline 插件向我的本地 API 发送 POST 请求。然后 API 将向 FCM 发送推送通知请求。这是个好主意吗?

标签: xmpp openfire smack


【解决方案1】:

我自己建立了我的答案。 我在我的服务器中开发了一个本地 API,用于发送推送通知。这个本地 API 将拥有每个 jid 的所有用户令牌(当在我的应用程序中生成令牌时,通过 rest 向我的 API 发送一个数据包)。 当用户离线时,openfire 服务器将使用CallBackOnOffline 插件向我的本地 API 发送包含消息正文和发送方和接收方的 JSON 的 POST 请求。然后API会从db中获取目的Token,向FCM发送push请求。

注意:CallBackOnOffline 在 openfire 中存在不发送 POST 请求的问题。我也解决了。如果有人遇到这个问题,请发表评论,我也会给出解决方案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
相关资源
最近更新 更多