【问题标题】:Gamekit LatencyGamekit 延迟
【发布时间】:2012-02-27 21:15:21
【问题描述】:

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

如果服务器在延迟期间发送了 10 个数据包,那么客户端会同时收到这 10 个数据包。奇怪的是,服务器在延迟期间仍然从客户端接收数据包。

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

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

【问题讨论】:

    标签: ios networking gamekit gksession


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • 有没有显示延迟的方法?
    • @zeiteisen 不:你必须自己写。发送带有时间戳的 ping 消息,在另一端响应包含相应 ping 中时间戳的 pong 消息。根据我的经验,可靠消息和不可靠消息的延迟可能不同。
    猜你喜欢
    • 2017-07-28
    • 1970-01-01
    • 2019-06-07
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    相关资源
    最近更新 更多