2

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

如果服务器在延迟期间发送了 10 个数据包,那么这 10 个数据包会在客户端一次全部接收。奇怪的是,服务器在延迟期间仍然接收来自客户端的数据包。

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

有没有其他人在使用 gamekit 时遇到过这样的延迟峰值?这个问题的根源可能是什么?

4

1 回答 1

3

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

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

在您的测试设备上:是否有任何运行可能会淹没网络?

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

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

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

于 2012-02-27T13:15:21.623 回答