bob*_*off 5 iphone latency nsstream ios multipeer-connectivity
我想使用 iPhone 上的加速度计在 iPad 上控制一艘太空船。设备使用 Multipeer Connectivity Framework 连接。我正在使用将两个设备链接在一起的会话对象上的常规 sendData 方法发送加速度计数据。
一切正常,只是有一个非常严重的滞后。然后我开始注意到一些奇怪的事情。消息以突发方式发送,以下是在 iPad 上接收消息之间经过的时间记录。
时间流逝:0.488062
时间流逝:0.002678
时间流逝:0.001255
时间流逝:0.001652
时间流逝:0.005365
经过的时间:0.516167 < - 500ms的间隙
时间流逝:0.004351
时间流逝:0.001268
时间流逝:0.001069
经过的时间:0.001048
这些是来自控制器(iphone)的登录,数据的发送者:
时间流逝:0.099938
时间流逝:0.100045
时间流逝:0.099997
时间流逝:0.099978
时间流逝:0.100027
时间流逝:0.099975
时间流逝:0.099997
时间流逝:0.100296
时间流逝:0.099719
时间流逝:0.099567
经过时间:0.100650
使用每 100 毫秒触发一次的计时器发送数据。(10次/秒)
有了这些信息,我只能假设数据的发送以某种方式缓冲并以另一种速率发送(似乎每 500 毫秒)(2 次/秒)。
我也尝试过使用 NSStream 版本的框架来发送数据。再次注意到同样的爆裂。然后我尝试对 inputStream 进行自己的轮询并消除了突发,但延迟保持不变或更高。感觉大约 500-1000 毫秒。我真的没有测量延迟的正确方法,但是只要尝试控制那艘飞船的体验完全没有价值,我就知道它太高了:)
我很少有做这种编程的经验,所以任何帮助表示赞赏。我什至不知道最终希望延迟多低,但感觉在这样的游戏中,20-50 毫秒的延迟可能是可以接受的。我说的是从 iPhone 到 iPad 的单向延迟。
| 归档时间: |
|
| 查看次数: |
386 次 |
| 最近记录: |