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

Posted

技术标签:

【中文标题】在没有 VoIP iOS 的情况下保持 XMPP 套接字在后台活动【英文标题】:Keep XMPP Socket Alive In Background Without VoIP iOS 【发布时间】:2016-04-13 06:42:39 【问题描述】:

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

有人知道这个吗? 可以在后台播放无声音乐吗?应用商店会拒绝吗? 如果我这样做,我的应用程序? 我看了很多帖子,他们说远程通知是一种选择,是 真的如此吗?我们可以在没有远程通知的情况下实现这一目标吗?

【问题讨论】:

兄弟,我认为您需要 GCM(Google Cloud Messaging)的应用程序。 不使用 GCM/Remote Notification 可以实现吗? 首先要清楚。应用程序进入后台后我们没有任何命令,如果我们想在后台执行某些代码或终止状态,那么我们必须实现 GCM/远程通知跨度> @PratikJamariya 您可以尝试使用 APNS,我认为这对您很有用.. ***.com/questions/36589631/… 【参考方案1】:

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

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

当消息的接收者不在前台时,您可以通过查看传递/读取刻度来检查它。

保持 Socket 处于活动状态并不是实现此功能的方法,因为它会耗尽 iPhone 的电池。

【讨论】:

播放无声音乐会导致 App Store 拒绝应用。

以上是关于在没有 VoIP iOS 的情况下保持 XMPP 套接字在后台活动的主要内容,如果未能解决你的问题,请参考以下文章

使用 XMPP 进行 VoIP 的安全性如何?

iOS XMPP 客户端在一段时间后断开连接

在后台运行 VOIP (PJSIP) 服务

是否可以在没有域名的情况下运行 XMPP 服务器?

iOS 13 在后台没有收到 VoIP 推送通知

我的 iOS 应用程序在 IPv6 下运行良好,但连接到 XMPP 是错误的。 Android没有错误