关于 ios:Gamekit 延迟

Gamekit Latency

我在使用 GKSessions 时遇到以下问题:
有时在客户端/服务器应用程序中发送数据时会有很大的延迟(3-4 秒,有时长达 10 秒)。

如果服务器在延迟期间发送比方说 10 个数据包,那么这 10 个数据包会在客户端上一次性收到。奇怪的是,服务器在延迟期间仍然从客户端接收数据包。

这种延迟似乎在 WiFi 网络中更糟,但在蓝牙网络中也会发生。

是否有其他人在使用游戏套件时遇到过这种延迟峰值?
这个问题的根源是什么?


我一直在使用 gamekit 和 gksession。我总是使用 Peer2Peer 模式,尽管有些人不鼓励它。我从来没有经历过像你描述的那样的延迟。

您使用 GKSendDataReliable 还是 GKSendDataUnreliable 发送?尝试切换到另一个,看看它是否有任何改变。如果您使用 GKSendDataReliable,则发送设备将在发送下一条消息之前等待来自接收方的"已接收"消息。这可能是问题所在。

在您的测试设备上:是否正在运行可能导致网络泛滥的任何东西?

我正在测试基于多人游戏套件的游戏,如果我有多个活动设备,那么突然有些设备会完全停止,我需要硬重启(完全关闭并重新启动)它们才能再次运行。

如果您一直遇到麻烦,您可能想尝试更底层的 api:dns-sd https://developer.apple.com/library/mac/#documentation/Networking/Conceptual/dns_discovery_api/Introduction.html

希望你能成功,祝你好运!