3

我们有一个使用套接字创建玩家大厅的游戏。当玩家创建大厅时,会在我们的服务器上创建一个游戏。不幸的是,如果用户使用 Apple 按钮切换我们的应用程序,另一位用户可能会加入游戏,并且游戏将开始时只有一个玩家处于活动状态。因此,当应用程序转换到后台关闭大厅时,我们希望通过套接字向我们的服务器发送一条消息,阻止其他人加入。

但我们不能。套接字在进入后台模式时被冻结。即使我们使用 beginBackgroundTaskWithExpirationHandler 让应用程序保持活动状态,套接字活动也不起作用。

VOIP 不是一个选项,因为标题与 VOIP 无关,并且会立即从 Apple 提交中退回。

有人有任何非VOIP相关的想法吗?

非常感谢,

史蒂夫。

4

1 回答 1

2

我认为您要做的是让服务器知道该用户在触摸 Apple Home 按钮时处于离线状态。

我正在使用 GCDAsyncSocket,但其他方式可能类似。
我正在做的是

  1. 在 UIApplicationDidEnterBackgroundNotification 上添加观察者。

  2. 当应用程序进入后台然后调用套接字断开连接。服务器将知道您处于离线状态。

我知道这对您的回答来说有点晚了,但可能对其他人有所帮助。

于 2015-04-22T06:05:56.760 回答