当应用程序在后台时,也许有人解决了与服务器的稳定连接问题?我需要将音频数据从服务器传输到客户端应用程序。我知道 iOS 的所有黑客如何让应用程序保持活动状态,但我需要合法的方法来解决这个问题。也许你有什么想法?我发现我可以将 VoIP 推送发送到将唤醒我的应用程序然后建立 tcp 连接到我的服务器的设备,但是这个套接字将保持活动大约 30 秒(正如我在日志中看到的那样,每 3 秒在发送的 iOS 应用程序中触发计时器数据到服务器)这对我来说还不够。
1 回答
也许这个项目https://github.com/SmallSharpToolsOpenSource/Speakerbox会对某人有所帮助。而这个视频https://www.youtube.com/watch?v=lXJ1LDjL4Os
苹果技术支持的官方回答:
PushKit 是 voip 应用程序可以可靠地接收静默通知的方式,而 CallKit 基本上是一个 UI 框架,voip 应用程序可以用来通知用户有关呼叫的信息。请注意,API 中没有任何直接连接 - 例如,voip 应用程序可以生成本地通知(而不是使用 CallKit),或者干脆什么都不做并完全“忽略”通知。类似地,voip 应用程序可以随时通过简单地告诉 CallKit 有来电来“伪造”呼叫(我们的 CallKit 示例代码就是这样做的)。
您的应用程序以前在收到 voip 套接字流量时可以做的任何事情,它也可以在收到 PushKit 通知时做。
标准 voip 应用程序实际上以两种完全不相关的“模式”运行:
1)在等待来电时,应用程序被挂起,直到“某物”(PushKit 或 voip 套接字)唤醒应用程序告诉它来电。
2) 通话开始后,应用程序有一个活动的音频会话,并依赖于 iOS 的标准“背景音频”行为,就像各种其他音频应用程序(例如,任何流媒体音乐应用程序)一样。