我正在开发基于服务器客户端应用的扑克应用。一段时间后,由于应用程序无法向服务器发送/接收任何数据包,因此当应用程序无法发送/接收来自服Sever结束套接字连接。如何能够长时间建立连接并更新我的游戏UI
答案 0 :(得分:2)
您要求的主题称为"Background Execution"。
第一:
当应用进入后台时,您无法更新用户界面。但是,您可以使用 beginBackgroundTaskWithExpirationHandler 完成对服务器的API请求并将数据保存在手机上。您可以使用此方法编写一个与您的服务器通信并处理您的应用程序将接收的所有数据的块。如果应用程序再次进入前台,您可以使用后台收到的这些数据来更新您的用户界面。
重要的是,这些后台任务必须在短时间内完成,因此在这里进行无限循环不是一个好主意。否则,iOS将终止您的进程。 iOS确定您的应用程序背景后您真正得到多少时间。
第二
如果你想保持tcp / ip-connections始终打开,即使应用程序仍然在后台,Apple提供了一个非常强大的后台模式,使你可以在后台运行任何时间的代码。它被称为VoIP服务。不幸的是,你的应用程序应提供一些不被Apple拒绝的VoIP内容。这是关于这些服务的good article。