如何在后台处理TCP连接? 为扑克应用服务器客户端应用程序

我正在基于基于服务器端客户端的应用程序扑克应用程序。 当一段时间后,由于应用程序无法发送/接收任何数据包到服务器,TCP / IP连接丢失后,扑克应用程序进入后台。 Sever结束套接字连接。 我怎么能够build立连接很长一段时间,并更新我的游戏用户界面

您要求的主题称为“后台执行” 。

第一:

当应用程序进入后台时,您无法更新UI。 但是,您将能够使用beginBackgroundTaskWithExpirationHandler完成您的API请求到服务器并将数据保存在手机上。 您可以使用此方法编写一个与您的服务器通信并处理您的应用程序将收到的所有数据的块。 如果应用程序再次进入前台,则可以使用在后台接收到的数据更新您的用户界面。

重要的是,这些背景任务必须在短时间内完成,因此在这里不是一个好主意,有一个无限循环。 否则,iOS将终止你的过程。 您的应用程序获得后台照片后,您真正获得的时间是由iOS决定的。

第二:

如果你想保持TCP / IP连接,即使应用程序仍然在后台,苹果提供了一个非常强大的后台模式,使您可以随时在后台运行代码。 这就是所谓的VoIP服务。 不幸的是,你的应用程序应该提供一些VoIP的东西,不被苹果拒绝。 这是一个关于这些服务的好文章 。

Interesting Posts