我目前正处于开发严重依赖时间戳的移动应用程序的早期阶段。
主设备通过 wifi 连接到多个客户端设备,并向这些设备发出各种命令。当客户端设备接收到命令时,需要在命令执行时标记(相对)时间戳。虽然这一切都很简单,但我还没有想出如何处理时钟差异的解决方案。例如,主设备的时钟可能为 12:01:01,而客户端 A 的时钟为 12:01:02,客户端 B 的时钟为 12:01:03。大多数情况下,我可以期望这些设备设置为相似的时间,因为它们通过 NTP 同步。但是,我的应用程序的性质需要毫秒精度,因此我想防止出现差异。
发出命令和执行命令之间的短暂延迟是可以的,但是执行该命令的时间不正确则不行。
到目前为止,我正在考虑让主设备 ping 每个客户端设备以确定事务时间,然后请求客户端发送他们的“本地”时间。基于此,我可以计算出master和client之间的时间差。一旦知道时间差,客户端就可以相应地调整其时间戳。不过,我对网络不是很熟悉,而且我怀疑 ping 设备不是建立事务时间的非常可靠的方法,因为有很多因素适用,并且延迟可能会发生变化。
我假设有许多现实世界的设置,这些时间问题很重要,因此应该已经有了解决方案。有人知道吗?将响应时间简单地除以 2 就足够了吗?
谢谢!