当应用程序处于后台时,XMPP 客户端必须如何通知新消息?
How the XMPP client must notified of new Message, when app is in background?
考虑到 OPENFIRE 不支持 XEP-0357(推送通知),那么客户端必须如何通知新消息?用户连接是否必须始终可用?但是在 whatsApp 等其他消息传递应用程序中,当用户转到后台时,它的存在变为不可用。另一个问题是开发它的 iOS 版本,它不支持 BACKGROUND-SERVICE,就像 android 中存在的那样。
其他 IM 客户端在这种情况下会做什么?
我自己找到了答案。
我在我的服务器中开发了一个本地 API 来发送推送通知。这个本地 API 将拥有每个 jids 的所有用户令牌(当令牌在我的应用程序中生成时,通过 rest 将数据包发送到我的 API)。
当用户离线时,openfire 服务器将使用 CallBackOnOffline 插件向我的本地 API 发送包含 JSON 消息正文和发送者和接收者的 POST 请求。然后 API 会从数据库中获取目标 Token 并向 FCM 发送推送请求。
注意:CallBackOnOffline 在 openfire 中有一个问题,不发送 POST 请求。我也解决了。如果有人遇到这个问题,请评论,我也会给出解决方案。
考虑到 OPENFIRE 不支持 XEP-0357(推送通知),那么客户端必须如何通知新消息?用户连接是否必须始终可用?但是在 whatsApp 等其他消息传递应用程序中,当用户转到后台时,它的存在变为不可用。另一个问题是开发它的 iOS 版本,它不支持 BACKGROUND-SERVICE,就像 android 中存在的那样。 其他 IM 客户端在这种情况下会做什么?
我自己找到了答案。 我在我的服务器中开发了一个本地 API 来发送推送通知。这个本地 API 将拥有每个 jids 的所有用户令牌(当令牌在我的应用程序中生成时,通过 rest 将数据包发送到我的 API)。 当用户离线时,openfire 服务器将使用 CallBackOnOffline 插件向我的本地 API 发送包含 JSON 消息正文和发送者和接收者的 POST 请求。然后 API 会从数据库中获取目标 Token 并向 FCM 发送推送请求。
注意:CallBackOnOffline 在 openfire 中有一个问题,不发送 POST 请求。我也解决了。如果有人遇到这个问题,请评论,我也会给出解决方案。