【问题标题】:Keeping iOS socket alive in background mode without VOIP在没有 VOIP 的情况下在后台模式下保持 iOS 套接字处于活动状态
【发布时间】:2013-11-08 21:20:31
【问题描述】:

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

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

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

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

非常感谢,

史蒂夫。

【问题讨论】:

    标签: ios sockets background


    【解决方案1】:

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

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

    1. 在 UIApplicationDidEnterBackgroundNotification 上添加观察者。

    2. 当应用程序进入后台然后调用套接字断开连接。服务器会知道你离线。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2011-09-07
      相关资源
      最近更新 更多