ios - 游戏套件延迟

标签 ios networking gamekit gksession

我在使用 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/

相关文章:

ios - 如何从 hh :mm:ss to hh:mm a? 更改 NSTime 格式

ios - iPhone 应用程序连接到离线网络中的服务器

linux - 为主机系统无法访问的docker中的两台机器创建网络

ios - GKLocalPlayer 和 saveGameData 的问题

ios - 在 Phonegap 中,HTML 不会随着应用程序的旋转而调整大小

iphone - Facebook 登录后应用程序崩溃

ios - Swift - 如何在从另一个 segue 返回后停止表单重置

java - 通过网络传输类型 double[]

iphone - 在室内可靠地定位 iPhone?

ios - 在 iOS 中,Gamekitframework 在发送消息方面是否比 multipeerconnectivity 框架更快?