objective-c - GKSession connectToPeer 方法不会超时

标签 objective-c ios gamekit gksession

我正在努力解决 GKSession 问题。我有一个客户端和服务器,我的客户端尝试与服务器连接

[_gkSession connectToPeer:peerID withTimeout:10];

如果服务器明确拒绝[_gkSession denyConnectionFromPeer:peerID]的连接然后客户的connectionWithPeerFailed:withError被正确触发。

但是,如果服务器只是忽略连接或存在其他问题,客户端将坐在那里尝试连接,直到宇宙热寂。超时似乎没有任何影响。

我在文档中看不到任何建议设置超时需要的不仅仅是指定超时间隔 - 以及所有客户端的其他 GKSession委托(delegate)方法工作正常。我在这里遗漏了一些明显的东西吗?

最佳答案

根据我的经验,GKSession 非常容易出错。而且我不认为苹果正在修复这些错误。 我要做的是在您尝试连接到另一方时启动一个计时器 - 如果连接成功,则取消计时器,当它超时时,取消连接。 问候!

关于objective-c - GKSession connectToPeer 方法不会超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7105443/

相关文章:

ios - iOS6 ARC 中的 MFMailComposeViewController 崩溃

ios - 如何在 iOS 中发送和接收 Web 服务请求和响应?

cocos2d-iphone - 播放器断开连接问题 GKMatch 和 Gamekit

ios - Http 请求错误 500 仅在 iOS 上

objective-c - 如何将 JSON 对象保存到 Core Data?

objective-c - 将一个 iOS Storyboard 项目包含到另一个项目中?

ios - 手机重启后 iBeacon 监控/测距

ios - 如何从电话号码字符串中删除几个数字 - Swift

swift - 无法在 watchOS 上使用 GameKit (Game Center) 验证本地玩家

ios - Game Center matchData 的良好实践