我们有一个使用套接字创建玩家大厅的游戏。当玩家创建大厅时,我们的服务器上会创建一个游戏。不幸的是,如果用户使用Apple按钮切换我们的应用程序,则另一个用户可以加入游戏,并且游戏将从仅一个活动的玩家开始。因此,当应用程序转换到后台以关闭大厅时,我们希望通过套接字向我们的服务器发送消息,阻止其他人加入。
但我们不能。进入后台模式时套接字会冻结。即使我们使用beginBackgroundTaskWithExpirationHandler让应用程序保持活跃状态,也不会有套接字活动。
VOIP不是一个选项,因为标题与VOIP无关,并会立即从Apple提交的内容中退回。
任何人都有任何与非VOIP相关的想法吗?
非常感谢,
史蒂夫。
答案 0 :(得分:2)
我认为您要做的是在触摸Apple Home按钮时让服务器知道该用户处于脱机状态。
我正在使用GCDAsyncSocket,但其他方式可能类似 我正在做的是
在UIApplicationDidEnterBackgroundNotification上添加观察者。
当应用程序进入后台时,请调用socket disconnect。服务器会知道你离线了。
我知道你的回答有点迟,但对其他人有帮助。