我希望将来在多个iOS设备上同步(在.05秒内)一个事件,无论这些设备是否在未来的时间内具有网络访问权限。

为此,我相信我需要同步到这些设备之间的公共时钟,最好的方法是从NTP服务器获得精确的时间。 我已经看了iOS-NTP ,但是描述说它确定了1秒精度的时间,而这对我来说并不是很好。

另一种方法是从GPS时钟获得(准确的?)时间戳,但我不确定这些设备是否总能获得GPS信号。

还有其他建议吗?

===============>>#1 票数:2 已采纳

iOS不会为您提供对GPS硬件的低级访问,因此您无法使用该方法。

如果设备彼此靠近,则可以使用GameKit建立对等无线连接。 这应该会给你带蓝牙约35ms的延迟,并且延迟应该是一致的,所以你可以测量它几次以使时钟同步。

如果他们不在一起......那么我会设置一个服务器并将其用作“真实”时间。 通过多次调用,您应该能够测量设备和服务器之间的延迟,然后以合理的精度计算时钟偏移。

如果可能使用UDP而不是TCP,那么网络拥塞将丢弃数据包而不是延迟它们。

你需要继续重新计算偏移量,因为iOS设备经常更换时钟(我认为它是3G / LTE网络协议的一部分?从一个蜂窝塔跳到另一个蜂窝塔可能会更新时钟)。

  ask by ScottyB translate from so

未解决问题?本站智能推荐: