我在使用 GKSessions 时遇到以下问题: 有时,在客户端/服务器应用程序中发送数据时会出现巨大的延迟(3-4 秒,有时长达 10 秒)。
如果服务器在延迟期间发送了 10 个数据包,则客户端会立即收到这 10 个数据包。奇怪的是,在延迟期间服务器仍然接收来自客户端的数据包。
这种延迟在 WiFi 网络中似乎更严重,但在蓝牙网络中也会发生。
还有其他人在使用 gamekit 时遇到过这样的延迟峰值吗? 这个问题的根源是什么?
最佳答案
我一直在使用 gamekit 和 gksession 进行大量工作。我总是使用 Peer2Peer 模式,尽管有些人不鼓励它。我从未遇到过像您所描述的那样的延迟。
您使用 GKSendDataReliable 还是 GKSendDataUnreliable 发送?尝试切换到另一个,看看它是否会改变任何东西。如果您使用 GKSendDataReliable,则发送设备将等待来自接收器的“已接收”消息,然后再发送下一条消息。这可能就是问题所在。
在您的测试设备上:是否正在运行任何可能导致网络泛滥的内容?
我正在测试基于多人游戏套件的游戏,如果我有多个事件设备,那么突然有些设备会完全停止,我需要硬重启(完全关闭并重新启动)它们才能使它们再次工作。
如果您不断遇到麻烦,您可能需要尝试更底层的 api:dns-sd https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/dns_discovery_api/Introduction.html
希望你能成功,祝你好运!
关于ios - 游戏套件延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520069/