如何在多个iOS设备上同步事件?

时间:2014-04-21 02:32:04

标签: ios time

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

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

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

还有其他建议吗?

1 个答案:

答案 0 :(得分:2)

iOS不会让您对GPS硬件进行低级访问,因此您无法使用该方法。

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

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

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

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