在没有 VoIP 的情况下在后台保持 XMPP 套接字活动 iOS

Keep XMPP Socket Alive In Background Without VoIP iOS

我使用 XMPP 开发了一个聊天应用程序,它在应用程序处于前台时运行良好,直到后台运行 3 分钟,在后台运行 3 分钟后,应用程序收不到消息,简而言之,它会断开连接,我也使用这个 xmppStream.enableBackgroundingOnSocket = YES; 但它只有在应用程序在后台运行时才有效。使用 VoIP 它工作正常,但我的应用程序不支持 VoIP,这可能会导致应用程序商店拒绝。 我正在考虑在后台播放无声音乐以使应用程序在后台保持活跃,但我怀疑是否会被拒绝。我尝试使用 UIBackgroundTaskIdentifier 任务,但 iOS 仍然会在 3 分钟内杀死应用程序。我尝试使用 Background Fetch,但这并不能使应用程序保持活动状态。

如果没有 PushNotification,您将无法实现此功能。

甚至 WhatsApp 也实现了当应用程序不在前台模式时发送消息的推送通知。

当消息的接收者不在前台时,您可以通过查看 delivery/read 滴答来检查它。

让套接字保持活动状态并不是实现此功能的方法,因为它会耗尽您的 iPhone 的电池。