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

如何在多个iOS设备上同步事件?,ios,time,Ios,Time,我希望将来在多个iOS设备上同步(在0.05秒内)一个事件,无论这些设备在将来是否具有网络访问权限 要做到这一点,我相信我需要在这些设备之间同步到一个公共时钟,最好的方法是从NTP服务器获取精确的时间。我已经看过了,但是描述说它以1秒的精度确定时间,这对我来说不太合适 另一种方法是从GPS时钟获取(准确的?)时间戳,但我不确定这些设备是否总是能够获取GPS信号 还有其他建议吗?iOS不允许您对GPS硬件进行低级访问,因此您不能使用该方法 如果设备彼此靠近,您可以使用GameKit建立对等无线连接

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

要做到这一点,我相信我需要在这些设备之间同步到一个公共时钟,最好的方法是从NTP服务器获取精确的时间。我已经看过了,但是描述说它以1秒的精度确定时间,这对我来说不太合适

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


还有其他建议吗?

iOS不允许您对GPS硬件进行低级访问,因此您不能使用该方法

如果设备彼此靠近,您可以使用GameKit建立对等无线连接。这将为蓝牙提供大约35毫秒的延迟,并且延迟应该是一致的,以便您可以测量几次以使时钟同步

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

如果可能,使用UDP而不是TCP,这样网络拥塞将丢弃数据包,而不是延迟数据包


不过,您需要继续重新计算偏移量,因为iOS设备经常更改时钟(我认为这是3G/LTE网络协议的一部分?从一个基站跳到另一个基站可能会更新时钟)。

谢谢。不幸的是,我不能使用GameKit,因为可能有很多设备,而且可能不在蓝牙范围内。但是,我喜欢使用单个服务器作为时间源的想法,即使它不是NTP服务器。我找到了描述这种方法的方法。我很想知道iOS设备更新时钟的频率。我以为是每周两次左右,但你似乎觉得更频繁。@ScottyB我不知道它多久更新一次。当然,如果你跨越国界,它会在几分钟内更新你的时区。我不知道,但我想它也会同时更新时钟。我不知道。通常可以安全地假设时钟非常准确,除非用户干扰了默认设置。